PNF 的 JEB 逆向工程平台是用纯 Java 编写的吗?

逆向工程 爪哇 反编译器 杰布
2021-06-30 17:48:55

我已经看到PNF Software的 JEB 反编译器从一个专门的反编译器转变为一个完整的逆向工程平台,如 Capstone 或 IDA Pro。

在检查 JEB 的早期版本时,特别是 1.x 版本(有些已经被破解并在线共享,我注意到它是用纯 Java 创建的,没有任何本机代码(JNI),最多使用 Jython 库进行访问蟒蛇API。

事实上,这篇维基百科文章指出 JEB 的基础语言是 Java。

但是,如果您查看 JEB 的当前功能(目前为 ver 3.X),是否有可能整个软件都是用纯 Java 编写的?根据我对 Java 的一次写入随处读取的了解,似乎没有针对 Windows、Mac 或 Linux 的单独下载。

那么在没有任何本机代码的情况下,在纯 Java 中实现 IDA-Pro 版本在技术上是可能的吗?

即使是Capstone也有新的语言(Python、Ruby 和Java)绑定,但反编译引擎是用 C/C++ 编写的。JEB 是这种情况吗?

我注意到这里这里还有一篇研究文章试图用纯 Java 编写机器代码反汇编器/解释器,但怀疑它是否足够稳定以运行 RE 平台。我提到的那些回购是实验性的和过时的。

由于我目前没有足够的钱来获得 JEB 许可证,任何人都可以使用或仔细挖掘评论,以便我们可以在网上和维基百科上维护事实信息吗?

编辑:好的。因此,当我终于有钱为自己获得许可证时,我想知道是否可以挂钩LoadLibraryALoadLibraryW在 Windows 上确定。JEB 使用 Eclipse RCP 可执行文件。那么我是挂钩那个可执行文件还是 JVM 可执行文件呢?因为 Windows 上的 JVM 使用许多 Windows API 调用,这些调用可能会利用 LoadLibraryX 调用。

2个回答

与 C 相比,Java 中没有阻止软件开发的技术限制。唯一的主要优势是执行速度。此外,由于 JEB 面向 Java 程序(android APK),因此用 Java 编写它是有道理的。

但是,这个问题实际上与逆向工程无关。

显然是的,大部分 JEB 代码库似乎都是用 Java 编写的。您可以查看安装文件夹中的 jeb*.jar 文件。它们很大,但这会给你一个指示:那里有数千个大的 javaclass 文件,很少有原生的 so 文件。