java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第1张图片

所有文章首发在我的微信公众号“逆向新手”,更多逆向系列请关注公众号,谢谢!

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

本文接着上篇文章分析,没看过的请先看《JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)》

直接搜索this[Y],清空cookie后在下图断点并刷新页面

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第2张图片


成功断在此处,这里的function(e, f)为回调函数,后面再看。F11跟进

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第3张图片


这里的c同样在获取浏览器环境信息,具体自行跟进查看。然后到这

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第4张图片


将c传入fontsKey进行处理,跟进看下

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第5张图片


三元运算为false,因此调用后面的jsFontsKey函数,传入前面的c和回调函数,继续跟进

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第6张图片


前面一大堆都在操作DOM,最后生成这个x列表,push进a列表中,a即为前面的c,最后执行d(a),d为之前的回调函数。直接把这个x拿来用即可。现在再看下回调函数

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第7张图片


先将c按一定规则分成d和e列表,再经过x64hash128运算得到n,再传回给一开始的那个回调函数,继续跟进查看

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第8张图片


最后回到这里,将传入的c(即这里的f)经过类似VD、WD等函数调用后,一个个push到this[Y]中。VD、WD等如下:

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第9张图片


就是生成键值对而已,这里就不一一分析了,具体请自行跟进,有些还是作过函数处理的。最后生成类似如下:

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第10张图片


经过对比,与上篇中生成的this[Y]相同,至此全部分析完毕。这个难的就是有好多回调函数,很容易搞混。代码我就不扣了,简单说下那些常量的逻辑

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第11张图片


通过定义了固定的ok字符列表,然后传入匿名函数a

java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二)_第12张图片

然后这里对常量赋值,把这些部分截取出来就行了。其它缺啥补啥。对于怎么模拟浏览器指纹的,请参考这篇《JS逆向 | 骚操作教你如何伪造浏览器环境》

同时欢迎关注我的公众号“逆向新手”,逆向系列将持续更新!

你可能感兴趣的:(java如何模拟浏览器执行js函数_JS逆向 | 某售房网高度混淆分析(二))