首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反编译JAVA DLL

反编译JAVA DLL
EN

Stack Overflow用户
提问于 2012-04-16 17:03:50
回答 3查看 6.8K关注 0票数 0

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

下面是我调用这个包含jar的dll的方法:

代码语言:javascript
复制
new JarInputStream(getClass().getResourceAsStream("jarjava.dll"));

有没有反编译的方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-16 19:41:11

问题解决了。

下面是我是如何做到的:

读取文件:

代码语言:javascript
复制
JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/myjar.dll"));

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

代码语言:javascript
复制
JarEntry entry;
while ((entry = input.getNextJarEntry()) != null)
{
    // Write file
}
票数 0
EN

Stack Overflow用户

发布于 2012-04-16 17:08:12

Java源文件被编译成.class文件。据我所知,目前还没有将java代码编译成DLL的标准方法。

这里可能发生的事情:

  • 这是针对JNI编写的C代码,用于与Java代码进行交互;
  • 这是被某些工具(自动)转换为C代码,然后编译为动态链接库的Java代码。
  • 这是有人重命名为动态链接库的JAR文件。在这种情况下,将其重命名,解压缩JAR,并使用Java反编译器对JAR进行反编译。

如果不了解这个DLL的起源,您就无能为力了。尝试C反编译器,但可能不会走得太远。

票数 1
EN

Stack Overflow用户

发布于 2012-04-16 17:07:57

您可以自己阅读机器代码并将其翻译回C语言。这并不容易,因为将代码编译成本机代码的全部要点(可能是唯一的要点)是使其更难反编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10171295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档