Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从AWT可执行文件中提取Java类_Java_C#_Applet - Fatal编程技术网

从AWT可执行文件中提取Java类

从AWT可执行文件中提取Java类,java,c#,applet,Java,C#,Applet,我有一个在里面运行JVM的应用程序,看起来它正在使用,我发现在做了一些研究之后,因为主应用程序窗口是一个MSAWT\u Comp\u类,对应用程序EXE进行了一些分析,我找到了导入Java类的链接(我不确定): 因此,我猜Java类存在,但无法访问,我在应用程序中只能找到一个包含上述链接的RC_数据内容,还发现该应用程序是一个Java应用程序,使用Jexegen作为Jexegen转换为EXE,使用hex查看器可以找到一些SDK链接 我的问题是,是否有方法提取Java类或从该应用程序读取它们?可

我有一个在里面运行JVM的应用程序,看起来它正在使用,我发现在做了一些研究之后,因为主应用程序窗口是一个MSAWT\u Comp\u类,对应用程序EXE进行了一些分析,我找到了导入Java类的链接(我不确定):

因此,我猜Java类存在,但无法访问,我在应用程序中只能找到一个包含上述链接的RC_数据内容,还发现该应用程序是一个Java应用程序,使用Jexegen作为Jexegen转换为EXE,使用hex查看器可以找到一些SDK链接

我的问题是,是否有方法提取Java类或从该应用程序读取它们?可能通过了解抽象窗口工具包(AWT)或SwingJexegen的结构,或者了解Java文件在编译后如何包含在c#app中

我希望我能问清楚我的问题,我尽我所能用我的一点知识

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

正如您已经了解的,
.exe
文件包含类型为
RC\u DATA
的资源。 有两个这样类型的条目。较小的一个(名为“1001”)只包含带有类名的字符串(它可能是主类名),较大的一个(名为“1000”,约600KB)包含实际的类。 您可以借助任何资源提取工具(如“资源黑客”)提取该资源

每个
*.class
文件以4个字节开始
0xCA 0xFE 0xBA 0xBE
,因此您可以迭代提取的“1000”的内容,并将每个类保存到单独的
*.class
文件中。每个
0xCA 0xFE 0xBA 0xBE
将标记新文件开始。而且,很明显,前一个阶段结束了

然后可以反编译类

也许通过了解抽象窗口工具包(AWT)或Swing的结构


AWT和Swing只是构建UI的标准库。因此,这并不重要。

请添加一些上下文:这是谁的程序,它是做什么的,你的最终目的是什么?这是我们的长话短说,应用程序是记录器:,这是一个中断的项目,我们正试图了解它如何处理导出的二进制文件(屏幕录制).所以,您要反汇编的不是您自己的代码,而是一个找到的程序?我不确定这是否是这个网站的主题,但如果这是我的问题,我会首先尝试找到原始开发人员,看看他们是否有信息和可能的源代码可以共享。你可以尝试的一件事是将可执行文件重命名(复制)到.zip文件中,看看是否可以解压缩它。背后的基本原理是Java打包(.jar格式)实际上是一个.zip文件,而且可能可执行文件在内部也保留了这种“约定”。这是我做的第一件事,甚至使用了资源黑客和PE Explorer,我得到的只是一个RC_数据(二进制)文件扫描后,我在里面找到了指向java库的链接。非常感谢,我可以按照您所说的方式提取这些类,我没有得到太多信息,因为代码不清楚,即使可读,也无法理解,发现越来越多的带有符号的链接,这些类已经被反编译(我想)。