Python 爬虫,JS 逆向之 webpack 打包站点原理与实战
📢📢📢📢📢📢💗 你正在阅读 【梦想橡皮擦】 的博客👍 阅读完毕,可以点点小手赞一下🌻 发现错误,直接评论区中指正吧📆 橡皮擦的第 <font color=red>621</font> 篇原创博客
⛳️ webpack 原理说明
webpack 是前端程序员用来进行打包 JS 的技术,打包之后的代码特征非常明显,例如下述代码。
有经验之后,当看到出现 app.版本号.js
,chunk-libs.版本号.js>
就能大概猜到 JS 是使用了 webpack 加密。
学习过程中,我们顺手解决一个 webpack 的加密站点,地址如下所示:https://passport.gm99.com/
![Python 爬虫,JS 逆向之 webpack 打包站点原理与实战](https://img-blog.csdnimg.cn/e4dea65a86bf457db148e0ec1679b5a8.png =500x)添加了包含关键字 login/login3
的断点之后,通过开发者工具调试得到下述代码段。
当通过调试进入 a.encode()
函数内部之后,发现了大量的 webpack 打包 JS 的痕迹,例如下图红框部分。
其实发现加密逻辑之后,可以直接用 Python 进行复写代码也是可以的。
这里面出现的关键字包含如下内容。
n = function(t,e,n)
n.exports = s
.call(e,i,e,t)
然后翻阅到 JS 文件头部,简化代码得到如下内容,到这里 webpack 的痕迹。
如果在细研究一下,webpack 打包之后的代码执行规则也非常简单。
扣 JS 代码
接下来我们就实战扣取一下可执行的 JS 代码。
第一步:创建一个 JS 文件,名称任意编写如下代码,将函数 e
暴露出来。
接下来分区域扣取 JS 代码,这里依据 function()
进行区分即可。
所有不全之后的代码,可以去 gitcode 进行下载。
接下来运行生成的静态文件,测试可执行函数,就能得到对应的数据了。
📣📣📣📣📣📣右下角有个大拇指,点赞的漂亮加倍
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/07d8687b835852731dbea0857】。文章转载请联系作者。
评论