2

I have seen the JEB decompiler by PNF Software morph from a specialised decompiler to a full fledged reverse engineering platform like Capstone or IDA Pro.

While examining the earlier versions of JEB, specifically the 1.x ones (some have been cracked and shared online, I noticed that it was created in pure Java, without any native code (JNI) and at most with the Jython library for access via Python API.

In fact, this Wikipedia article states that JEB's base language is Java.

However, if you look at the current features of JEB (currently at ver 3.X), is it possible that the entire software is written in pure Java? From what I know about Java's Write Once Read Anywhere, there seems to be no separate downloads for Windows, Mac or Linux.

So is it technically possible to implement an IDA-Pro version in pure Java without any native code?

Even Capstone have new language (Python, Ruby and Java) bindings, but the decompiler engine is written in C/C++. Is this the case for JEB?

I note there have been attempts here, and here plus a research article to write a machine code dissembler/interpreter in pure Java, but doubt it can be stable enough to run a RE platform. Those repos I mentioned are experimental and outdated.

As I do not currently have enough money to get myself a JEB licence, can anyone using or have dug in care to comment, so that we can maintain factual information online and on Wikipedia?

EDIT: Ok. So when I finally do have the money to get myself a licence, I would like to know if its possible to hook LoadLibraryA or LoadLibraryW on Windows to determine. JEB uses an Eclipse RCP executable. So do I hook that executable or the JVM executable? Because the JVM on Windows uses many Windows API calls which will probably utilise the LoadLibraryX calls.

4

There's no technical limitation preventing software development in Java verses C. The only major advantage is execution speed. Moreover, as JEB is directed towards Java programs (android APKs) writing it in Java makes sense.

However, this question is not really about reverse engineering.

  • JEB is in no way limited to Android. At least JEB Pro is not. I use it to analyze Windows malware and occasionally look at Ethereum contract, since it supports EVM decompilation. – Alex Byrde Mar 14 at 18:37
  • 1
    Absolutely. Implying JEB is limited to Android was definitely not my intention. JEB has an extremely varied support nowadays. – NirIzr Mar 17 at 10:32
1

Apparently yes most of JEB code base seems to be in Java. You can look at the jeb*.jar files inside your install folders. They're huge, but that will give you an indication: thousands of big javaclass files in there, very few native so files.

  • 1
    Contrast with Ghidra where the decompiler and debugger is in native – Nederealm Mar 16 at 8:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.