在完成基本的调试和加密函数的定位之后,下面要做的就是抠取 js。一般有两种方法:
•抠 this 对象•不抠 this 对象
不抠对象
先讲第一种,不抠对象。
把 md5 加密函数所在的整个 js 文件复制到 notepad,选择折叠所有层次:
找到 md5,根据缩进,仅将 md5:function(t){...}部分取出来,复制到snippets中:
删除最后的逗号等,将格式调整好:
直接运行会报错函数需要一个函数名:
在 js 中,md5:function(t){...}这种形式是无法直接运行的。
改为 let md5 = function(t){...},可以看到此时运行不会报错。成功执行:
抠对象
跟前面一种方法相比,这里需要往上多抠一级。
需要把包含 md5 的对象都复制出来,放到 snippets 中,直接运行:
如果是全局变量(例如 [xxx =]只有一处),可以直接把整个 js 拿出来直接运行。成功拿到加密数据。虽然复制的内容较于第一种较多,但是无需改动代码。
对于一个加密的网站,在进行基本的调试,定位之后,找到加密函数,并且将关键js代码抠取出来放到本地运行,再将自己的明文通过加密函数加密,传值到服务器,至此基本的js逆向流程就已经结束。
原文始发于微信公众号(Crush Sec):js 逆向系列 03-常见加解密二
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论