一个基于 Java 的工具,用于从 运行中的 JVM 进程中提取字节码,使用 Java Attach API 和仪器。
它在运行时附加到目标 JVM 进程,通过 agentmain 注入 Java 代理,并使用 ClassFileTransformer 拦截和捕获所有已加载类的字节码。收集的 .class 文件会打包到 JAR 中并保存到磁盘中。所有活动都会记录在控制台和文件中。
关键组成部分:
它在运行时附加到目标 JVM 进程,通过 agentmain 注入 Java 代理,并使用 ClassFileTransformer 拦截和捕获所有已加载类的字节码。收集的 .class 文件会打包到 JAR 中并保存到磁盘中。所有活动都会记录在控制台和文件中。
关键组成部分:
- RemoteBytecodeExtractor — 入口点,列出正在运行的 JVM,提示选择,并加载代理
- BytecodeAgent — 驱动加载类重换的代理
- BytecodeCollector —— 捕获原始字节码并将其写入 JAR 的变换器
- LogUtils — 对控制台和文件的安全日志