webpack逆向——AES

💡 原文中文,约1300字,阅读约需3分钟。
📝

内容提要

本文探讨了通过逆向工程获取加密函数及其依赖的方法。首先定位加密函数,发现其使用类似AES的加密方式。通过调试和加载器,提取所需模块并替换为JSON对象,最终成功调用加密函数并验证结果,展示了高效的模块提取和依赖处理技术。

🎯

关键要点

  • 通过分析登陆包定位到加密函数入口,发现使用类似AES的加密方式。
  • 通过调试和加载器提取所需模块,并替换为JSON对象。
  • 成功调用加密函数并验证结果,展示高效的模块提取和依赖处理技术。
  • 在加密函数的js文件中找到webpackJsonp字样,确认其为webpack打包的代码。
  • 通过全局搜索和格式化js文件,提取出所需的模块和函数。
  • 在加载器中替换数组为json对象,解决加载模块时的报错问题。
  • 总结出快速扣取依赖的方法,减少手动补依赖的步骤。

延伸问答

如何定位到加密函数入口?

通过分析登陆包中的参数,如username和password,结合其他参数如uid,成功定位到加密函数入口。

加密函数使用了什么加密方式?

加密函数使用了类似AES的加密方式,具体代码中也写明了使用AES。

如何提取webpack打包的模块?

通过全局搜索和格式化js文件,找到所需的模块和函数,并将其导出到全局。

在加载器中如何处理数组和json对象?

加载器格式可以接受数组或json对象,因此可以将数组替换为json对象以解决加载模块时的报错问题。

如何验证加密函数的调用结果?

通过调用扣取下来的加密函数,并与预期结果进行对比,确认加密是否成功。

总结一下快速扣取依赖的方法。

快速扣取依赖的方法包括全局搜索、格式化js文件、导出模块到全局,减少手动补依赖的步骤。

➡️

继续阅读