webpack逆向——AES
💡
原文中文,约1300字,阅读约需3分钟。
📝
内容提要
本文探讨了通过逆向工程获取加密函数及其依赖的方法。首先定位加密函数,发现其使用类似AES的加密方式。通过调试和加载器,提取所需模块并替换为JSON对象,最终成功调用加密函数并验证结果,展示了高效的模块提取和依赖处理技术。
🎯
关键要点
- 通过分析登陆包定位到加密函数入口,发现使用类似AES的加密方式。
- 通过调试和加载器提取所需模块,并替换为JSON对象。
- 成功调用加密函数并验证结果,展示高效的模块提取和依赖处理技术。
- 在加密函数的js文件中找到webpackJsonp字样,确认其为webpack打包的代码。
- 通过全局搜索和格式化js文件,提取出所需的模块和函数。
- 在加载器中替换数组为json对象,解决加载模块时的报错问题。
- 总结出快速扣取依赖的方法,减少手动补依赖的步骤。
❓
延伸问答
如何定位到加密函数入口?
通过分析登陆包中的参数,如username和password,结合其他参数如uid,成功定位到加密函数入口。
加密函数使用了什么加密方式?
加密函数使用了类似AES的加密方式,具体代码中也写明了使用AES。
如何提取webpack打包的模块?
通过全局搜索和格式化js文件,找到所需的模块和函数,并将其导出到全局。
在加载器中如何处理数组和json对象?
加载器格式可以接受数组或json对象,因此可以将数组替换为json对象以解决加载模块时的报错问题。
如何验证加密函数的调用结果?
通过调用扣取下来的加密函数,并与预期结果进行对比,确认加密是否成功。
总结一下快速扣取依赖的方法。
快速扣取依赖的方法包括全局搜索、格式化js文件、导出模块到全局,减少手动补依赖的步骤。
➡️