akamai3反混淆

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在本公众号联系作者立即删除!

正文

     首先在这里感谢Zong佬文章,很快的就知道akm3的一些字符串怎么解混淆。文章在这里,我就是在这个基础上又继续分析的。https://1997.pro/archives/1724551505440。还原结果如下图:

图片

    通过此图可明显看出来部分字符串已经被还原了,但是C76函数还有很多不能还原的,这就是Zong佬文章中所说"akm的字符串解密过程是动态的"。接下来就说一下话存在的一些混淆。

    首先是类似jsfuck,常量替换这种就比较常见了。

    之后就是这种纯函数,还是花指令的混淆i了。

图片

      解开之后就是这样,左边是解开的。是不是明显很多。

图片

    还有逗号表达式,三元表达式的还原。下面这种特殊的三元表达式,其实分析后可以判断出真假,就单独写一个脚本。

typeof SQ()[hR()[24]] !== 'undefined'typeof gV()[hR()[38]] === "undefined" 

    重点说下如下这类字符串为什么,用之前的方法无法获取。​​​​​​​

gV()[hR()[18]](577, 346)rj()[hR()[7]](623, true, 17)

    下面是一个加密函数的内容

           do {                if (!(pL6 - 12)) {                  SQ()[PT6[pL6]] = function () {                    return DT.apply(this, [45, arguments]);                  };                } else {                  SQ()[PT6[pL6]] = function () {                    var wY6 = PT6[pL6];                    return function (mx6, NM6, nM6, kx6) {                      var k26 = NE(true, NM6, false, kx6);                      SQ()[wY6] = function () {                        return k26;                      };                      return k26;                    };                  }();                }                ++pL6;              } while (pL6 < PT6.length);

    如上所看到的,首次进入NE(true, NM6, false, kx6),才可以获取正确k26的值,也就是我们所用的字符串,所以第一次传入的参数很重要,之后不管传入任何值,获得的都是k26的值。但是为什么我们在第一次之后无法获取,其他位置也拿不到,拿到了也是乱码,是因为代码中控制了字符串获取的位置,比如在检测屏幕的时候,才可以取到screen这个字符串。所以我只能通过dump办法去还原,如下图,最终LC76反混淆如下。

图片

        欢迎大家关注我的公众号“秋裤的学习笔记”,也可以加我v: DYF_dyf_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值