自动收集webpack调用模块

自动收集webpack调用模块

之前的文章介绍过JS逆向中处理webpack的通用方法。那篇文章中是将所需模块所在的JS文件整个拷贝到本地来了。往往这些文件巨大而且不止一个,但是其实我们只需要其中的某些模块。有没有办法自动获取到所有需要的模块而不用拷贝整个JS文件嘛?答案是有的。

加断点

找到源代码中加载我们所需模块的位置,这里为21725模块,在此位置和下一行代码位置加上断点。

进入加载器内部在第一行加上一句无效代码并在此处加上断点

收集模块

刷新页面,将代码执行先经过21725模块然后再到加载器的断点处,此时我们需要几个步骤

  1. 清空模块缓存变量d
  2. 创建一个接收所需模块的变量sss
  3. 在加载器内部断点的下一行增加条件断点,断点条件为ssse=fe, 0,这是一个逗号表达式,条件结果永远为false也就是断点不会停,但是会执行语句ssse=fe,将模块塞入到对象sss中
  1. 继续执行代码直到断点停在加载21725模块代码的下一行代码处
  2. 此时在控制台执行语句,控制台就会打印出加载21725模块所需的所有模块
javascript 复制代码
const pairs = Object.keys(sss).map(key => {
  return `"${key}":${sss[key].toString()}`;
});const result = `{${pairs.join(',')}}`;console.log(result);

注意

收集模块时涉及到的模块缓存变量r、获取模块的f、模块的名称e,可能是随机生成的,不能直接套用我例子中的代码。

相关推荐
kingx31 天前
Bugku 3122 谷歌小恐龙题解:纯离线逆向 Vault 的 AES-GCM 加密资源(附 Python 解密器)
java·逆向·ctf·bugku·aes-gcm
福狼6 天前
从“网墙”到柔性曲面:一次 WebGPU 波浪的逆向分析与重建
前端·逆向
kingx36 天前
Bugku Reverse 与 Android 题解总集:APK / native / PE / IPA
android·逆向·ctf·bugku
虎鲸不是鱼6 天前
AI 自动化逆向(三十六)先找不加密的部分
人工智能·自动化·大模型·逆向·ai逆向
虎鲸不是鱼10 天前
AI 自动化逆向(三十五)假设空间枚举的完备性是假设出来的
人工智能·自动化·大模型·逆向·ai逆向
虎鲸不是鱼10 天前
AI 自动化逆向(三十三)换一个「驱动器」,覆盖率跳了一个量级
人工智能·自动化·大模型·逆向·ai逆向
虎鲸不是鱼10 天前
AI 自动化逆向(三十四)自建指令缓存:把分钟级查询压到秒级
人工智能·自动化·大模型·逆向·ai逆向
虎鲸不是鱼11 天前
AI 自动化逆向(二十六)「已解出」和「已解析」是两回事
人工智能·自动化·大模型·逆向·ai逆向
虎鲸不是鱼12 天前
AI 自动化逆向(三十一)函数体不可读 ≠ 函数不可命名
人工智能·自动化·大模型·逆向·ai逆向
虎鲸不是鱼12 天前
AI 自动化逆向(二十二)换行比峰值法:让 AI 自己发现图像的宽度
人工智能·自动化·大模型·逆向·ai逆向