文章目錄

最近某里滑块更新到227,导致之前的226代码过不去了,于是得排查下原因。在这之前,想着先把混淆代码还原下,这样更方便调试。

之前虽然还原过221,但现在已经更新到227了,得花时间写很多插件,好在可以站在巨人的肩膀,蔡老板的226还原文章就是一个很好的参考,蔡老板的星球里有很多现成的插件,直接拿来用就完事了。

还原的过程中遇到两个问题,一个是自执行函数作用域的问题,另一个是假节点。秋裤佬写过还原出现作用域异常的解决方案,自执行函数作用域问题迎刃而解。假节点就是条件语句里会有很多数学计算,但其实值永远为true,仔细观察它们的特征后写插件解决即可。每次执行完一个插件后,都替换原文件然后在网站上测试代码是否正常,保证还原的准确性。最终的效果是核心代码合并后只有一个case。还有一些字符串常量没有还原,得花不少时间写,等后续有时间了再写插件还原。

代码还原后,我们就可以调试了。先把代码放到补环境框架中跑一跑,token能生成,但过不去,于是只能慢慢调试,这次调试才发现某里滑块混淆代码的厉害之处,它会根据传进来的参数执行不同的流程,调试起来依然很费劲,不愧是国内混淆js的天花板。对比核心数组和浏览器之间的差异,慢慢调试,最后发现增加FocusEvent, 然后第13位固定写死就能跑通了。这次更新和226相比核心代码几乎没变,只是数组位置变了下,然后轨迹校验变严格了,问题不大。

打赏作者

文章目錄