前言:
当前我们对“js代码混淆”大体比较关怀,你们都需要剖析一些“js代码混淆”的相关内容。那么小编同时在网上搜集了一些关于“js代码混淆””的相关资讯,希望看官们能喜欢,兄弟们快快来了解一下吧!前言初识
混淆的JS代码常见的就是变量替换,增加了可阅读的难度,通常还会加入大量的无用的代码,增加代码的体积,但是不会影响运算速度。极简壁纸的JS混淆就是如此。
逆向目标无限debugger的解决接口返回值加密解密混淆代码的逆向无限debugger
打开极简站点后,打开开发者工具,立即就进入了debugger的界面
通常我们用一律不在此处暂停就能停止进入断点,然后进行我们的本地调试。
但是极简壁纸暂停后,浏览器瞬间卡死,除了这个,它还向我们的浏览器的内存中写入了无限的代码。
这里我们用hook的方式,重置一下debugger方法。这段代码,在网上到处都是。
查找接口
点击分页,获得数据,找到xhr接口,点击预览,发现返回的数据是加密的。
全局搜索decript关键字,无法搜索到任何内容
点击启动器,查看到有类似混淆的代码。
点击最后一个混淆代码,进入源码。打上断点,再次点击分页数据,进入断点后,查找核心解密方法。
鼠标悬浮到解密方法开始的地方,点击进入方法的定义的地方。
接着,我们就把这点js复制下来,放到我们本地的开发IDE中。
运行一下,发现window和window.atob未定义,我们来补环境。
补充完环境后,再次运行,发现还有一些报错,仔细观察出错的位置,在浏览器的控制台中输出并替换,直到所有的错误都消失,并得到解密后的数据
到此,逆向结束。
总结
混淆代码难读懂,逆向的时候,也完全没必要去每行读懂,复制核心代码下来,逐步运行补充环境,逐步调试,逐步拿到结果。
仅供学习参考