工作流修补 Java jar 文件

逆向工程 拆卸 反编译 爪哇 修补
2021-06-26 01:55:30

通常,我使用固件和本地代码可执行文件,修补常量、跳转条件等小东西。在那里我使用 IDA 的反汇编来分析修补的内容和位置。对于 Java 字节码,我倾向于使用来自 jd-gui 等工具的反编译代码来分析要修补的内容。但是对于实际更改任何内容,我需要在反编译代码和字节码之间建立连接。有没有可以显示这个的工具

2个回答
  1. 使用JD-GUI检查 jar 文件
  2. 解压jar文件
    • jar -xf yourapp.jar
  3. 使用 Java 字节码编辑器修改 .class 文件
  4. 将修改后的类重新打包到新的存档文件中
    • jar -cvf yourapp_patched.jar *.*

Khai Tran @ NetSPI 的此特定解决方案的积分

对于修补,您通常最好在字节码级别更改内容,因为反编译和编译都是有损操作,而字节码修补始终有效,即使对于高度混淆的应用程序也是如此。有许多工具可以用于此目的。

至于理解源代码和字节码之间的联系,那只是实践问题。我建议首先阅读 JVM 规范。然后编译一些简单的 Java 示例并查看生成的字节码。幸运的是,Java RE 比本机代码容易得多,因此您有这方面的经验,学习应该不会太难。