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.