从 AWT 可执行文件中提取 Java 类
extracting Java classes from AWT executable
我有一个应用程序,里面是 运行 JVM,看起来它正在使用 Abstract Windowing ToolKit (AWT),我发现在做了一些研究后,主要应用程序 window 是一个MSAWT_Comp_Class,对应用程序 EXE 进行了一些分析,我发现看起来像是导入 Java 类 的链接(我不确定):
所以我猜 Java 类 在那里但无法访问,我在应用程序中只能找到具有上述链接的 RC_DATA 内容,还发现该应用程序是一个使用 Jexegen 作为 Jexegen 转换为 EXE 的 Java 应用程序,并且可以使用十六进制查看器找到一些 SDK 链接。
我的问题是是否有办法提取 Java 类 或从该应用程序中读取它们?也许通过了解 Abstract Windowing ToolKit (AWT) 或 Swing 或 Jexegen 的结构或如何将 Java 文件包含在 c# 中编译后的应用程序。
希望我能把问题问清楚,我已经尽力了。
My question is if is there a way to extract the Java classes or read them from that application?
如您所知,.exe
文件包含 RC_DATA
类型的资源。
这种类型的条目有两个。较小的一个(名为“1001”)仅包含带有 class 名称的字符串(它可能是主 class 名称)而较大的一个(名为“1000”,大约 600 Kb)包含实际的 class是的。
您可以在任何资源提取工具的帮助下提取该资源,例如 "Resource Hacker".
每个 *.class
文件以 4 个字节 0xCA 0xFE 0xBA 0xBE
开头,因此您可以遍历提取的“1000”的内容并将每个 class 保存到单独的 *.class
文件中。每个 0xCA 0xFE 0xBA 0xBE
将标记新文件开始。而且,很明显之前结束了。
那么classes就可以反编译了。
maybe by knowing the structure of Abstract Windowing ToolKit (AWT) or Swing
AWT 和 Swing 只是构建的标准库 UI。所以这里无所谓。
我有一个应用程序,里面是 运行 JVM,看起来它正在使用 Abstract Windowing ToolKit (AWT),我发现在做了一些研究后,主要应用程序 window 是一个MSAWT_Comp_Class,对应用程序 EXE 进行了一些分析,我发现看起来像是导入 Java 类 的链接(我不确定):
所以我猜 Java 类 在那里但无法访问,我在应用程序中只能找到具有上述链接的 RC_DATA 内容,还发现该应用程序是一个使用 Jexegen 作为 Jexegen 转换为 EXE 的 Java 应用程序,并且可以使用十六进制查看器找到一些 SDK 链接。
我的问题是是否有办法提取 Java 类 或从该应用程序中读取它们?也许通过了解 Abstract Windowing ToolKit (AWT) 或 Swing 或 Jexegen 的结构或如何将 Java 文件包含在 c# 中编译后的应用程序。
希望我能把问题问清楚,我已经尽力了。
My question is if is there a way to extract the Java classes or read them from that application?
如您所知,.exe
文件包含 RC_DATA
类型的资源。
这种类型的条目有两个。较小的一个(名为“1001”)仅包含带有 class 名称的字符串(它可能是主 class 名称)而较大的一个(名为“1000”,大约 600 Kb)包含实际的 class是的。
您可以在任何资源提取工具的帮助下提取该资源,例如 "Resource Hacker".
每个 *.class
文件以 4 个字节 0xCA 0xFE 0xBA 0xBE
开头,因此您可以遍历提取的“1000”的内容并将每个 class 保存到单独的 *.class
文件中。每个 0xCA 0xFE 0xBA 0xBE
将标记新文件开始。而且,很明显之前结束了。
那么classes就可以反编译了。
maybe by knowing the structure of Abstract Windowing ToolKit (AWT) or Swing
AWT 和 Swing 只是构建的标准库 UI。所以这里无所谓。