WEB前端逆向在nodejs环境中复用webpack代码

admin 2025年5月15日09:24:01评论2 views字数 1001阅读3分20秒阅读模式
WEB前端逆向在nodejs环境中复用webpack代码

(过于小众的纯技术文章,感兴趣的网络安全同行自取TXT,懒得排版)

☆ 背景介绍

WEB前端逆向中会遭遇webpack处理过的js代码,这种代码不是给人类阅读的,所以没什么可读性。有些生成关键字段的函数位于其中,不想调试分析算法逻辑,想视之为黑盒函数,给in,返回out;想在nodejs环境中复用本来在browser环境中运行的webpack代码;此过程俗称「webpack代码抠取」。

这事没有真正意义上的技术门槛,但绝大多数讲抠取的文章写得不合我意,故有此篇科普。

简单点说,webpack是一种工具,可将本来在nodejs环境中运行的js处理一下,生成可在browser环境中运行的js。对WEB前端逆向人员,没必要往更复杂理解。学习思路如下

a. 写一套nodejs中可用的测试用例
b. 正向应用webpack技术,从a中js得到新的带符号信息的js
c. 编写HTML,在browser中使用b中js
d. F12调试,了解webpack框架流程
e. 正向应用webpack技术,从a中js得到新的strip过的js,接近现实世界案例
f. 针对e中js进行逆向工程,从中抠取webpack代码,得到新的js
g. 在nodejs中加载f中js,调用其中感兴趣的函数,得到返回值

按此思路学习,可从原理上真正理解「webpack代码抠取」。

☆ 小结

「webpack代码抠取」基本过程

a. F12调试跟踪至目标模块中某函数,欲抠取
b. 识别出目标模块的模块函数,识别模块入口、出口
c. 通过模块入口第三形参定位__webpack_require__()
d. 下载webpack运行时所在js,修改,全局导出__webpack_require__()
e. 下载目标模块所在chunk,精简,只留目标模块
f. 半自动抠取目标模块的依赖模块,补充到e中chunk
g. 编写run_webpack_code.js,加载webpack运行时,加载f中chunk,调用目标函数

步骤d、e可能是同一个js。步骤g可能需要二次补依赖模块。

有一些傻瓜化工具用于webpack抠取,不好这口,略过。

webpack抠取多用于黑灰产,实在想不出正经人为什么有这种需求?本文仅为逆向工程技术探讨,无意招麻烦,无现实世界完整示例,但相关技术全部提供,无保留,照猫画虎可实操。

原文始发于微信公众号(青衣十三楼飞花堂):WEB前端逆向在nodejs环境中复用webpack代码

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月15日09:24:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   WEB前端逆向在nodejs环境中复用webpack代码https://cn-sec.com/archives/4065577.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息