Engine
An "engine" is a self-contained, but externally-controllable, piece of code that encapsulates powerful logic designed to perform a specific type of work.
ghidriff
provides a core base class GhidraDiffEngine that can be extended to create your own binary diffing implementations.
The base class implements the first 3 steps of the Ghidra headless workflow:
- Create Ghidra Project - Directory and collection of Ghidra project files and data
- Import Binary to project - Import one or more binaries to the project for analysis
- Analyze Binary - Ghidra will perform default binary analysis on each binary
The base class provides the abstract method find_matches where the actual diffing (function matching) takes place.