### webpack自吐
案例url: http://www.mtzh.top/mtzh_h5/#/pages/SearchProducts/index?searchName=%E8%9C%82%E5%A7%BF%E6%B0%B4300&searchType=1&index=0

.
找到 sign生成的地方
```
{
sign: d,
word: a.cartKeywords,
OpenID: uni.getStorageSync('openID'),
Screen: a.tranche ? '' == a.sortStr ? '7:1' : a.sortStr + ',7:1' : a.sortStr
}
```
```
var d = (0, s.RSAEncrypt) (c, a.key);
```
发现这个加密是 d生成的,s 是webpack结构找到s生成的位置,断点找到 webpack加载器
```
var s = e("fadf")
```
```
function f(a) {
if (d[a]) return d[a].exports;
var n = d[a] = {
i: a,
l: !1,
exports: {
}
};
return e[a].call(n.exports, n, n.exports, f),
n.l = !0,
n.exports
}
```
添加记录点查看 模块名


我们需要断住 模块 "fadf" 到模块 "41dd" 之间加载的模块

进入f堆载 查看 d和e,这两个都是加载了模块 (d对象里面是没有加载完整的模块)


到加载器这里添加条件断点
```
wbp[a] = e[a], 0
```

刷新网页,控制台清空 d对象(已加载的模块),然后声明wbp对象,释放断点
```
d = {}
wbp = {}
```

打印出wbp加载的模块

打印出代码 复制过去
```
result = `{`;
for (let x of Object.keys(wbp)){
result = result + `"` + x + `"` + `:` + wbp[x] + `,`
};
result = result + `}`;
```
~~~
var result = '{';
var keys = Object.keys(wbp);
for (var i = 0; i < keys.length; i++) {
var x = keys[i];
result += '"' + x + '":' + wbp[x];
// 最后一个元素后面不加逗号
if (i !== keys.length - 1) {
result += ',';
}
}
result += '}';
~~~


这里用 360浏览器可以打印出代码,edge有引号
.
把e里面的全部导出运行才不缺模块,搞不懂


- 并发研究
- 爬虫工具
- 在线工具
- JS逆向
- 浏览器使用
- 安装nodejs调试js代码
- node 报错解决方法
- 技巧
- 小黄鸟ca证书
- iframe过禁F12
- js自加载函数调用
- ast 解混淆大数组
- 浏览器替换js文件
- webpack cb参数
- 油猴hook window中的方法
- proxy补环境
- nodejs使用vm
- 滑块验证码分析轨迹
- Ajax-Hook
- 浏览器 hook 通杀算法
- cookie-hook
- 内存漫游
- v_jstools 工具
- 绕过无限debuger
- TLS指纹
- hook 请求参数
- Fiddler对APP进行抓包
- 易盾大数组解密失败
- 某xt 人脸思路
- webpack 例子
- 微信小程序强开控制台
- eval解混淆
- webpack自吐
- 补环境框架
- ob解混淆
- 案例
- 对cx滑块验证分析
- 分析网易滑块验证码
- 大佬的资料
- 易盾滑块
- 某网站逆向
- 某网站的加密算法
- 验证码接口调用
- cx分析2
- 某网站手机接口分析
- yidun 2.26.1 逆向 2
- yidun 2.26.1 逆向 1
- 某某通 评论回复uuid
- 某平台app接口
- yidun增强版滑块
- yidun增强版滑块2
- 实例
- 影视综ranklist
- 中国五矿集团采购信息
- 天翼云登录
- 百度登录
- 1号店登录
- 财新登录
- 中国电信登录
- 99安全中心登录
- 护世界