我收到了一个带有我下载的应用程序的 java dll 文件。这个 DLL 文件是用 Java 编写的,现在我想反编译它。
下面是我如何调用这个包含 jar 的 dll:
new JarInputStream(getClass().getResourceAsStream("jarjava.dll"));
有没有办法反编译?
我收到了一个带有我下载的应用程序的 java dll 文件。这个 DLL 文件是用 Java 编写的,现在我想反编译它。
下面是我如何调用这个包含 jar 的 dll:
new JarInputStream(getClass().getResourceAsStream("jarjava.dll"));
有没有办法反编译?
Java 源文件被编译为 .class 文件。据我所知,没有将 java 代码编译为 DLL 的标准方法。
这里可能发生了什么:
如果不了解此 DLL 的来源,您将无能为力。尝试使用 C 反编译器,但可能不会走得太远。
您可以阅读机器代码并自己将其翻译回 C 语言。这并不容易,因为将代码编译为本机的全部意义(可能是唯一一点)就是让反编译变得更加困难。
问题解决了。
这是我是如何做到的:
阅读文件:
JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/myjar.dll"));
为每个条目编写一个新文件:
JarEntry entry;
while ((entry = input.getNextJarEntry()) != null)
{
// Write file
}