从AWT可执行文件中提取Java类 [英] extracting Java classes from AWT executable

查看:66
本文介绍了从AWT可执行文件中提取Java类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个在其中运行JVM的应用程序,看起来它正在使用

I have an application that is running JVM inside it, it looks like it is using Abstract Windowing ToolKit (AWT), I found that after doing some researches as the main application window is a MSAWT_Comp_Class, doing some analyzing on the application EXE I found what looked like links to import the Java classes (I am not sure):

所以我想Java类在那里但无法访问,我可以在应用程序中找到的是具有上述链接的RC_DATA内容,还发现该应用程序是使用 Jexegen转换为EXE的Java应用程序 as Jexegen和一些SDK链接可以使用十六进制查看器找到.

So I guess the Java classes are there but unreachable, all I could find in the app is an RC_DATA content that has the above links, also found that the app is a Java app converted to EXE using Jexegen as Jexegen and some SDK links can be found using a hex viewer.

我的问题是,是否有一种方法可以提取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? maybe by knowing the structure of Abstract Windowing ToolKit (AWT) or Swing or Jexegen or how Java files are being included in the c# app after compiling.

我希望我能清楚地问我的问题,我会以我的小知识尽力而为.

I hope I could I ask my question clearly, I tried my best with my little knowledge.

推荐答案

我的问题是,是否有一种方法可以提取Java类或从该应用程序中读取它们?

My question is if is there a way to extract the Java classes or read them from that application?

您已经知道,.exe文件包含类型为RC_DATA的资源. 有两个这种类型的条目.较小的一个(名为"1001")仅包含具有类名的字符串(它可能是主类名),而较大的一个(名为"1000",约600 Kb)包含实际的类. 您可以借助任何资源提取工具(例如"Resource Hacker")来提取该资源.

As you already figured out, .exe file contains resources of type RC_DATA. There are two entries of such type. The smaller one (named "1001") contains just string with a class name (it may be main class name) and bigger one (named "1000", about 600 Kb) contains actual classes. You can extract that resource with help of any resource extracting tool such as a "Resource Hacker".

每个*.class文件以4个字节0xCA 0xFE 0xBA 0xBE开头,因此您可以迭代提取的"1000"的内容,并将每个类保存到单独的*.class文件中.每个0xCA 0xFE 0xBA 0xBE都将标记新文件的开始.而且,显然是上一章的结尾.

Each *.class file starts with 4 bytes 0xCA 0xFE 0xBA 0xBE so you can iterate through content of extracted "1000" and save each class into separate *.class file. Each 0xCA 0xFE 0xBA 0xBE will mark new file start. And, obviously end of previous.

然后可以反编译类.

也许是通过了解Abstract Windowing ToolKit(AWT)或Swing的结构

maybe by knowing the structure of Abstract Windowing ToolKit (AWT) or Swing

AWT和Swing是构建UI的标准库.所以在这里没关系.

AWT and Swing is a just standard libraries to build UI. So it doesn't matter here.

这篇关于从AWT可执行文件中提取Java类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆