爬虫---webpack打包---36氪

Webpack逆向破解实战

本案例仅供学习和参考,不作商用

定位我就直接略过了,因为本案例的重点不在定位,而是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")
        }
    }
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值