反编译JAVA DLL

时间:2012-04-16 09:03:50

标签: java dll decompiler

我收到了一个带有我下载的应用的java dll文件。 这个DLL文件是用Java编写的,现在我想反编译它。

以下是我如何调用包含jar的dll:

new JarInputStream(getClass().getResourceAsStream("jarjava.dll"));

有没有办法对它进行反编译?

3 个答案:

答案 0 :(得分:1)

Java源文件被编译为.class文件。据我所知,没有标准的方法可以将Java代码编译为DLL。

这里可能发生了什么:

  • 这是针对JNI API编写的C代码,用于与Java代码交互(或来自);
  • 这是由某些工具(自动)转换为C代码的Java代码,然后编译为DLL。
  • 这是有人重命名为DLL的JAR文件。在这种情况下,重命名它,解压缩JAR,并用Java反编译器反编译JAR。

在不知道这个DLL的来源的情况下,你无能为力。尝试一个C反编译器,但可能不会走得太远。

答案 1 :(得分:0)

您可以自己阅读机器代码并将其转换回C.这很简单,因为将代码编译为本机的整个要点(可能只是一点)就是让反编译变得更难。

答案 2 :(得分:0)

问题解决了。

这是我如何做到的:

阅读文件:

JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/myjar.dll"));

为每个条目写一个新文件:

JarEntry entry;
while ((entry = input.getNextJarEntry()) != null)
{
    // Write file
}