本案例仅供学习和参考,不作商用
定位我就直接略过了,因为本案例的重点不在定位,而是webpack打包
1,看到这个代码就得猜了,去猜是不是webpack ,因为这里有一个n函数

2,把代码扣下来

3,根据报错提示,需要进到这个n的函数里面去

4,进到后观察是否是webpack的结构

5,确认是webpack后,什么都别说,直接全拿,整个文件直接全部拿下来
6,然后将加载器导出变成全局变量



7,运行后看报错信息,看到这个报错信息无非就两个原因,一个是undefine,一个是函数不存在

8,我们打上日志,可以看到报了一个431的错误

9,我看代码后,看到这个e也就是存储模块的对象或者列表被赋值给了n.m因为

因此我需要在浏览器里面的控制打印n.m[431],这个能理解吧

10,之后,需要点进这个被打印出的模块的位置

11,把代码收缩起来,全部拿下来
![]()
12,最后将模块放进模块组里面去

13,运行代码看结果,这就已经成功了

14,但是呢,我扣下来的代码有很多,如果需要爬取大量的数据的话,会比较慢,所以需要根据webpack的底层代码将代码量进行缩减




15,减掉不需要的代码后,测试一下依然能运行

16 ,我删代码的方法是通过这个加载器里面是否用到了,没有用到就直接去掉,核心逻辑还是要熟悉webpack的核心代码

看到这里的小伙伴,希望这个案例对你有所帮助,只求能有一个免费的赞来鼓励一下我这颗想继续创作的心
这个是webpack的核心代码
!(function(e){ // 将对象传进来
// 加载器
function n(t){ // 这个t就变成0了
return e[t].call() // 从列表的0索引位置取出来调用
}
n("bb") // 根据需要调用的模块传入这个模块在列表的中的索引
})(
{ // 对象插件
"aa":function(){
console.log("webpack打包方式一")
},
"bb":function(){
console.log("webpack打包方式2")
}
}
)
Webpack逆向破解实战
2万+

被折叠的 条评论
为什么被折叠?



