该文章主要提供交流学习使用,请勿利用其进行不当行为!如本篇文章侵犯了贵公司的隐私,请联系我立刻删除!
朋友在两个月前,让我给他搞一个网站,17track。
然后我看到这网站是js混淆。。。。。。。就没搞!!!
这几天无聊搞一下。。。。。废了我五六个小时。。。。。。。。。。。。
说实话,我都不想搞js逆向了,,这头发掉的啊。。。心疼!!
不废话l,直接进入正题!!
这里只分享破解思路!!谢谢!!!
这里我们打开网站 https://t.17track.net/
然后随便输入一个单号。点击查询,抓包。
这里我们先搜索Last-Event-ID这个参数名字。
然后发现在这里,这是个意外收获!!
一般混淆过的代码,,是不可能出现参数名的。。。
看来混淆的不够全面。
那这个就简单了,我们下断点。
进行s.b一般的调试环节。。
然后在这个函数下面,我们发现了大幂幂,就是我们的参数!!
我们打印一下!!
接下来开始调试。
根据右边的调用栈,我们找到此处!
我们在这个函数里下断点,看下这里面的东西!
然后发现,我们传入的data参数。
然后经过下面的json格式转换,各种处理,然后跳入我们cookie生成的函数中。
这里就开始扣代码吧!!
我红色方块里的代码都删掉即可。
为什么删掉呢???
因为根据调试,这些代码并没有什么卵用!!
这里我们简单的封装一下!!
然后开始我们的调试工作!!
这里会出现_0x2ec18e未定义,那就扣_0x2ec18e
然后出现_0x4f3f未定义,那就扣_0x4f3f
然后_0x50c7未定义,那就扣_0x50c7
然后运行,就会发现代码彻底卡死,,电脑都能卡崩溃,哈哈哈哈哈哈
然后就gg。
然后说声cnm。
这里是js的内存爆破,具体可百度搜索。。这里我就不吐槽了。。
找到这行代码,把这行代码改成-1即可
var _0x44235e = –1;
接着我们进行调试。
反正又是各种未定义。扣代码就行了!!
然后就发现,_0x2ec18e[_0x4f3f(…)] is not a function
明明我们已经定义了啊,代码里也有,,,到底什么意思啊。。。。
你就说掉头发不掉。。。
这里打印一下,他的值,,,发现乱码了。。。。。。。。。。。。
我们修改修改代码。。这里也是在代码里扣的,只不过修改成这样既可。
然后又是各种未定义,扣代码,扣代码,,扣代码,,,,
这里出现个$未定义。这里可以扣代码。
如果你觉得闲的话,可以扣扣看。。。。
这个值是固定的。。。。
复制既可,,,
接着我们调试,这里我们把这个值换成0既可。因为用不到。。。。。。。
然后未定义,未定义,未定义,,,,,,,,,,
这里说一下,这里函数修改成这样!!
然后就会发现,调试成功了,也出来结果了。。。。。。。。。
这才是最大的坑。。。。。。。。
因为我们用的是vsc。里面是本地调试。
我们把代码抠出来放到调试工具里面
显示JSON未定义。
这里百度去搜js JSON的代码。
然后显示windos未定义,document未定义,
我们定义既可。
这里我们用系统引擎执行。
用v8引擎。
都是错的。
我们回到vsc调试。
这行代码我改成了这样子
_0x126b58 = _0x126b58 + / + radix16 + / + “2c2”+ / + true;radix16我用python写的。
方法如下:
cc = hex(int(time.time() * 1000))
radix16 = cc.replace(0x,)js的这个16进制,,,实在是运行不出来,exejs,js2py,pyv8。。。。。都运行不出来。。。。。。。有大佬看到的话,可以讲解一下!!谢谢!!
“2c2″固定的。
后面还有好多的坑哦,调试,调试就能出来了。。这里不过多讲解了!
主要是需要用python执行。。。。。。。。。
这里我们看执行的结果!!!!
累死我了。。。。我这几天都不碰js了,放过我吧!!!
今天的分享到此结束了撒!!!谢谢大家!!!