88 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 知识点无限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直接上油候插件
![请求](./img/2.png)
控制台调试请求发现是`websocket`返回的数据,具体的`websocket`学习到bilibili上学习有很多视频教程这里不多讲述。
![请求](./img/1.png)
经过多次调试客户端发送的加密数据是不变化的
![请求](./img/3.png)
进入js代码调试发现存在`CryptoJS`
![请求](./img/4.png)
我们用解混淆工具测试一下,发现是`CryptoJS.AES`加密
![请求](./img/5.png)
到这里就可以尝试自己编写一个`CryptoJS.AES`加密看结果是否一致,这里我就不在演示,结果自然是不同的。
通过解混淆后的js代码我们不难发现这是browserify打包后的代码
browserify学习
browserify源码解析1——打包后文件解析
https://juejin.cn/post/6844903657784377351
既然是browserify打包原理和webpack差不多只需要导出加载器问题就搞定了
![请求](./img/7.png)
为了更加清楚的查看源代码,我用浏览器`启动替换本地文件`功能,进行调试
![请求](./img/6.png)
在下标为37的函数体内可以发现这样一段代码
![请求](./img/8.png)
将字符串`k["toString"]() + "|python-spider.com|yuanrenxue.com|大威天龙,大罗法咒"`给到了
`X`函数,`X`函数是如下
![请求](./img/9.png)
既然都知道了browserify打包那就开始模拟导出加载器
![请求](./img/10.png)
在自执行函数下面自己组个加密方法
![请求](./img/11.png)
执行查看结果
![请求](./img/12.png)
## 注意点
Buffer在浏览器中是不存在的这里改变了`aaaaaa`的赋值
![请求](./img/13.png)
navigator的环境检测
![请求](./img/14.png)
location的环境检测
![请求](./img/15.png)
代码格式化检测
![请求](./img/16.png)