Java运行时反向工程工具(注入DLL,运行时字节码和堆分析)

admin 2025年2月21日23:40:38评论11 views字数 768阅读2分33秒阅读模式
Java运行时反向工程工具(注入DLL,运行时字节码和堆分析)

JDBG 是一款功能强大的 Java 调试器和逆向工程工具,可在运行时运行。它可附加,并且不受代理限制。

Java运行时反向工程工具(注入DLL,运行时字节码和堆分析)
Java运行时反向工程工具(注入DLL,运行时字节码和堆分析)

DBG 利用注入的 DLL 以及 JNI 和 JVMTI 来深入了解 Java 应用程序。

阶级分析

  • 在运行时分析反编译的类
  • 在运行时分析方法字节码和字段定义
  • 将类添加到对象分析
  • 在字节码中动态设置断点
  • 检查堆栈跟踪
  • 检查局部变量值
  • 计划功能
  • 字节码检测和类重新定义
  • 静态变量修改
  • 静态场观察
  • 断点的局部变量修改
  • 将断点处的堆栈中的对象添加到对象分析中
  • 对象分析
  • 将类添加到对象工作区
  • 查看某个类的所有实例
  • 使用 Exprtk C++ 库应用过滤器来获取相关对象
  • 过滤器支持递归搜索,例如 obj.field1.field2 > 3 或 obj.field1 中的 'hello'
  • 计划对阵列的支持
  • 观察对象值(例如字符串)和字段
  • 根据对象的堆关系生成图
  • 获取指向特定对象的指针路径,有助于确定它们的来源类(尤其是字符串)
  • 计划的功能
  • 设置字段值

如何使用

要使用 JDBG,您必须拥有运行 Java 17 或更高版本的 JVM。

发行

您可以在该项目的发布选项卡中下载并运行它。

自己构建

Java 客户端是在 Intellij 中构建的,而 dll 是在 Visual Studio 中构建的

要构建 dll,您必须将 jdk 的 /includes 添加到包含路径(对于 jni.h 和 jvmti.h 之类的内容)您还必须安装 C++ 的 boost 库。

您必须将 dll 添加到客户端的 /assets 文件夹中此外,您必须构建 JDBG 32bit Helper 可执行文件并将其添加到客户端的 assets 文件夹中。

这样做的原因是为了获取 32 位应用程序的 kernel32.dll 和 LoadLibrary 的正确基地址。

项目地址:

https://github.com/roger1337/JDBG

 

原文始发于微信公众号(Ots安全):Java运行时反向工程工具(注入DLL,运行时字节码和堆分析)

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月21日23:40:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Java运行时反向工程工具(注入DLL,运行时字节码和堆分析)https://cn-sec.com/archives/3768388.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息