-
Notifications
You must be signed in to change notification settings - Fork 279
Description
Ghidra is an NSA alternative to IDA Pro, that might become the new de facto tool for reverse engineering and binary analysis. It comes with lots of stuff on board and is also freely available with the majority of the code made public under permissive license.
First of all, since Ghidra has an embedded Python interpreter it should be quite easy to port the bap-for-ida part of our IDA integration tools, i.e., an ability to run bap analysis from Ghidra and annotate the source tree along with the disassembly.
Second, it looks like that Ghidra could be run in a headless mode (not sure whether we need to start server for that), so it implies that we can use Ghidra to provide services for bap, like rooter, reconstructor, symbolizer, etc.
Finally, and this is the gem, Ghidra comes with Sleigh (this is the name of their IR) specifications for each supported processor (see Ghidra/Processors/<CPU>/Data/Languages/*
). Sleigh is an explicit language, with a concrete syntax that is quite similar to BIL. The goal is to be able to read those specifications. As Sleigh might become a de facto ISA semantics specification language, especially given the amount of work that is already done (~200kLOC of pure specifications, which are quite terse). At first glance it would be very easy to add support for Sleigh in BAP 2.0 semantics. Given that the sleigh specification could be translated to xml, using the provided tool sleigh
, there is even no need to implement a parser.