View Single Post
  #1  
Old 04-29-2020, 15:42
chants chants is online now
VIP
 
Join Date: Jul 2016
Posts: 576
Rept. Given: 7
Rept. Rcvd 35 Times in 21 Posts
Thanks Given: 501
Thanks Rcvd at 847 Times in 396 Posts
chants Reputation: 35
IDA Ghidra decompiler plugin source code release

There are still a good number of cleanup tasks for things like building on Linux, building on 32-bit systems, moving every path variable for bison or libraries to a single unified place.

This was built with an older Ghidra release not the current one and contains some special customizations of the sleigh source that it is built with by necessity as the P-code parser portion is a necessity. Otherwise the decompiler itself is communicated with via the interface that the Java frontend uses in Ghidra.

My focus was on 16-bit code so a lot of special details dealing with both IDA and Ghidra for these cases are built in for handling them. There are no good 16-bit decompilers in existence. But the concept of Ghidra which requires parameter identification before the decompilation pass was in the works and never completely finished. The code is somewhat staged to do it though.

You can browser or download the source here: https://github.com/GregoryMorse/GhidraDec

GhidraDec project is the main project as the others were test projects, or projects to test total decompiler integration. Ideally a build variable should allow building against the full decompiler, as well as the current separate binary approach. For technical design reasons, its definitely better to leave the decompiler as a separate process, Ghidra may have had to do it do to use of Java, but there are other reasons dealing with processes and threads and stability and memory leaks, crashes or hangs.
Reply With Quote
The Following User Gave Reputation+1 to chants For This Useful Post:
yoza (05-08-2020)
The Following 7 Users Say Thank You to chants For This Useful Post:
argie (08-17-2020), besoeso (04-29-2020), niculaita (04-29-2020), sh3dow (08-17-2020), Stingered (04-29-2020), virus (05-04-2020), yoza (05-08-2020)