某数分析第二弹

某数分析第二弹

海绵 平常学python python

今天咱们继续上次的接着分析,上次说了咱们把eval动态运行的拿出来放到主页面方便调试,可是咱们看到他这一段都是混淆过的
某数分析第二弹ajax

递归方式+混淆+简单扁平化
首先市面上有混淆工具能够达到这个效果,我本身也基于ast写了一个混淆工具,扯远了,咱们来看下他这个都是数组方式读取字符串,在源码搜索的时候
咱们发现了他初始化的位置,
某数分析第二弹
由于他是动态解析的这个数组,咱们只须要拿到他数组的成员放进去就好了,
某数分析第二弹
其实我看到这里是很疑惑的,这个字符串居然没有加密码,赤裸裸啊。
而后咱们把字符串数组手动赋值以后咱们拷贝这一段js到我写的混淆还原工具来看看
某数分析第二弹
没压力,瞬间还原,工具自动计算做用域替换的。而后咱们粘贴到notepad看看
某数分析第二弹
这么看的话基本上他的全部东西都出来了,万事俱备,就差调试, 咱们把这还原出来的js 替换上去,怎么替换呢,就是把昨天分析的ret = eval (伪代码把这个直接拷贝上去就好了,这样也方便调试。刷新以后debugger咱们忘了处理,直接跳过算了,而后咱们看到了这个
某数分析第二弹
而后本着测试的精神,我又刷新了七八遍,发现一个问题
某数分析第二弹
这个页面我是和js一块儿保存的并无从服务器拉取最新的然是依旧能够正常使用,由于他有两处,咱们尝试下这个
某数分析第二弹
这段若是固定了js直接报错,不固定正常加密,这就头大了,由于这是一段加密后的字符串咱们无论他是什么反正一会都要解密咱们先无论。api

到了如今咱们能够固定的调试他的第一层解密出来的js,由于你们都知道他的url是hook过的,也就是业务和反爬是分开的,因此咱们不须要刷新页面来让他走到断点,咱们能够这样
某数分析第二弹
咱们在控制台模拟他的其中一个接口而后回车
某数分析第二弹
已经成功请求了,咱们看他提交部分
某数分析第二弹
到这里说明是任意的url,由于他是hook了ajax的api而他又是能够任意url不限制的,咱们可使用xhr断点数组

点击这个加号咱们设置好他请求包含指定字符串的url就会断下来服务器

$.get("/tmrpToken.token")

而后控制台回车
某数分析第二弹
断在了真正提交url的地方,咱们看到他是this.send
某数分析第二弹
咱们看到他的this就是XMLHttpRequest 对象,看到他的url已经彻底计算好了
某数分析第二弹
顺着堆栈看,咱们先看send,点进去咱们把断点下到这里,由于他的变量之类的是根据做用域算的,复杂的话从头来算比较好,上层变量有可能会重叠
,下好断点咱们在从新提交一次
某数分析第二弹
第二次提交咱们能够看到很是干净,咱们按f10单步走
某数分析第二弹
走到这一行咱们发现url出现了
某数分析第二弹
很是清楚他在231这个对象,咱们往上看
某数分析第二弹
他在这个函数执行完就有了咱们进去这个函数下断点看看
某数分析第二弹
咱们f10单步发现他直接最后了,再进去这个函数继续_$7e
某数分析第二弹
传入三个参数
某数分析第二弹
继续单步
某数分析第二弹
又一个_$p5,继续
某数分析第二弹
仍是三个参数同样,而后有个Function,咱们抠出来看下
某数分析第二弹
new一个函数而后传进去三个参数,仍是这三个参数
某数分析第二弹
生成一个参数一调用参数二方法,传入参数三咱们看下这三个参数
某数分析第二弹
咱们能够直接这样
某数分析第二弹
打印出位置咱们双击进去
某数分析第二弹
断点进去以后咱们看
某数分析第二弹
这个函数没有什么蹊跷,继续走下去
某数分析第二弹ide

this._$oM = arguments[1] = _$ok(arguments[1])[0];

隐藏的很深啊
某数分析第二弹
咱们跟进去这个函数
某数分析第二弹
而后咱们单步发现他走到这里就有结果了咱们看下它穿的参数
某数分析第二弹
姑且认为参数2有用,咱们看下参数2那里出来的
某数分析第二弹
参数2咱们看下他的参数
某数分析第二弹函数

var _$s2 = _$HW(_$59(_$qt("/tmrpToken.token")));

咱们看看工具

_$qt

某数分析第二弹
编码剩下的无论他是什么 函数,到时候直接扣就好了,咱们只分析
到如今咱们看到了$HW,$59,_$6p这三个是加密用的,至于内部逻辑,先无论,先测试下能不能加密
某数分析第二弹测试

把他单独拿出来,而后写一个加密函数this

function url_encry(_$di){
  var _$s2 = hm._$HW(hm._$59(encodeURIComponent("/tmrpToken.token")));
  return hm._$6p(769, 0, _$s2, _$di);
}

某数分析第二弹

如今看来咱们思路没有错,分析逻辑和加密逻辑是没问题的,好了

篇幅有限,分析解密留着下次讲解,慢慢吸取此次的

相关文章
相关标签/搜索