我有一个在其中运行JVM的应用程序,看起来它正在使用Abstract Windowing ToolKit (AWT),我发现在进行一些研究后,因为主应用程序窗口是 MSAWT_Comp_Class ,所以一些分析应用程序EXE我发现看起来像导入Java类的链接(我不确定):
所以我猜Java类在那里但是无法访问,我在应用程序中找到的只是一个具有上述链接的RC_DATA内容,还发现该应用程序是使用 Jexegen转换为EXE的Java应用程序因为可以使用十六进制查看器找到Jexegen和一些SDK链接。
我的问题是,是否有提取Java类或从该应用程序读取它们的方法?也许通过了解抽象窗口工具包(AWT)或Swing 或 Jexegen 的结构,或者编译后如何将Java文件包含在c#app中。
我希望我可以清楚地问我的问题,我用我的小知识尽力而为。
答案 0 :(得分:4)
我的问题是,是否有提取Java类或从该应用程序读取它们的方法?
正如您已经想到的那样,.exe
文件包含RC_DATA
类型的资源。
这种类型有两个条目。较小的一个(名为“1001”)只包含一个带有类名的字符串(它可能是主类名),而较大的一个(名为“1000”,大约600 Kb)包含实际的类。
您可以借助任何资源提取工具(例如“资源黑客”)来提取该资源。
每个*.class
文件以4个字节0xCA 0xFE 0xBA 0xBE
开头,因此您可以遍历提取的“1000”的内容,并将每个类保存到单独的*.class
文件中。每个0xCA 0xFE 0xBA 0xBE
都会标记新文件的开头。并且,显然是之前的结束。
然后可以反编译类。
可能通过了解Abstract Windowing ToolKit(AWT)或Swing
的结构
AWT和Swing是构建UI的标准库。所以这里没关系。