InvoiceSpider
InvoiceSpider copied to clipboard
我分析emwrs.js时发现第一个函数调用就是死循环,不知道博主是怎么分析的
本来想反混淆以下这个js文件,结果发现第一个函数(setInterval前一个函数)调用就是死循环。那这个js是怎么在页面上正常使用的呢
就是里面的setCookie函数死循环
我也发现这是个死循环,如果用node在本地执行会造成堆栈溢出,但是页面上就正常,由于我对js不是很熟悉,所以我也不清楚是为什么,但是我找到了解决的办法。 它的混淆大概两种方式:
- 在每份js文件前面会有一个字串集合暂时叫它
dict
,然后有两个函数,第一个是匿名函数,直接执行的,会改变dict
的内容,然后另一个函数就是反混淆的关键,它可能接受两个参数或一个参数,然后会返回能读懂的含义,这个可以用一段脚本反混淆,我最新的dev
分支之中:https://github.com/BB-fat/InvoiceSpider/tree/dev/scripts/translate 你可以理解一下,我这边成功反混淆了3个文件,等有空我打算写一篇博客专门讲一下反混淆。 - 在重要的函数内有另一种混淆,它创建一个对象,然后这个对象加各种奇怪的属性,套娃,最后在后面调用这个对象的方法实现功能,这个只能人工一步一步解。
具体解决的办法就是先加载完成页面,然后手动讲body改成目标文件的内容,然后直接在console里使用js通过正则表达式处理,这样就可以直接调用那个翻译函数。
看来是使用的这个工具混淆,太难了 https://www.sojson.com/jsobfuscator.html
的确很绕,我今天破解到验证码函数,但他里面还有套娃,我还没解完。
我也发现这是个死循环,如果用node在本地执行会造成堆栈溢出,但是页面上就正常,由于我对js不是很熟悉,所以我也不清楚是为什么,但是我找到了解决的办法。 它的混淆大概两种方式:
- 在每份js文件前面会有一个字串集合暂时叫它
dict
,然后有两个函数,第一个是匿名函数,直接执行的,会改变dict
的内容,然后另一个函数就是反混淆的关键,它可能接受两个参数或一个参数,然后会返回能读懂的含义,这个可以用一段脚本反混淆,我最新的dev
分支之中:https://github.com/BB-fat/InvoiceSpider/tree/dev/scripts/translate 你可以理解一下,我这边成功反混淆了3个文件,等有空我打算写一篇博客专门讲一下反混淆。- 在重要的函数内有另一种混淆,它创建一个对象,然后这个对象加各种奇怪的属性,套娃,最后在后面调用这个对象的方法实现功能,这个只能人工一步一步解。
https://github.com/BB-fat/InvoiceSpider/blob/dev/js/translate.js 文件里的用法没看懂,有使用的例子吗?另外很期待你的反混淆文章
写了一篇博客将反混淆:https://www.fatech.online/articles/2020/05/03/1588498398801.html