js_reverse/猿人学练习/61js加密千山鸟飞绝-无限debuger-websocket-AES加密-browserify打包

知识点无限debugerwebsocket环境检测CryptoJS.AES加密ob混淆browserify打包

解题思路

js无限debugger学习总结

https://www.cnblogs.com/re-is-good/p/16631913.html

browserify学习

browserify源码解析1——打包后文件解析
https://juejin.cn/post/6844903657784377351

如果出现debugger直接上油候插件

请求

控制台调试请求发现是websocket返回的数据,具体的websocket学习到bilibili上学习有很多视频教程这里不多讲述。

请求

经过多次调试客户端发送的加密数据是不变化的

请求

进入js代码调试发现存在CryptoJS

请求

我们用解混淆工具测试一下,发现是CryptoJS.AES加密

请求

到这里就可以尝试自己编写一个CryptoJS.AES加密看结果是否一致,这里我就不在演示,结果自然是不同的。

通过解混淆后的js代码我们不难发现这是browserify打包后的代码

browserify学习

browserify源码解析1——打包后文件解析
https://juejin.cn/post/6844903657784377351

既然是browserify打包原理和webpack差不多只需要导出加载器问题就搞定了

请求

为了更加清楚的查看源代码,我用浏览器启动替换本地文件功能,进行调试

请求

在下标为37的函数体内可以发现这样一段代码

请求

将字符串k["toString"]() + "|python-spider.com|yuanrenxue.com|大威天龙,大罗法咒"给到了 X函数,X函数是如下

请求

既然都知道了browserify打包那就开始模拟导出加载器

请求

在自执行函数下面自己组个加密方法

请求

执行查看结果

请求

注意点

Buffer在浏览器中是不存在的这里改变了aaaaaa的赋值

请求

navigator的环境检测

请求

location的环境检测

请求

代码格式化检测

请求