A Binary Ninja plugin for analyzing indirect branch targets in x86_64 binaries.
Binja Missing Link is a plugin for Binary Ninja that helps analyze indirect branch targets in x86_64 binaries. It provides detailed information about branch targets, function calls, and virtual table references, making it easier to understand program control flow and function relationships.
Comment Generation
- Adds detailed comments at branch sources and destinations
- Includes:
- Target addresses in hexadecimal
- Function names (when available)
- Virtual table information (when applicable)
- Supports cross-referencing between branch points
- Load your x86_64 binary in Binary Ninja
- Run the plugin command "Binja Missing Link"
- Select the JSON file containing branch tracking information
- The JSON file can be generated by running the LLDB commands (
brt_set_bps
andbrt_save
) provided by my LLDB plugin repository.
- The JSON file can be generated by running the LLDB commands (
- The plugin will analyze the binary and add comments showing:
- Branch destinations (BML_dst)
- Branch sources (BML_src)
- Virtual table references (when applicable)
The plugin expects a JSON file with the following structure:
{
"modules": [
{
"name": "module_name",
"addr": "0xbase_address"
}
],
"branches": [
{
"before": {
"module": "module_name",
"func": "function_name",
"registers": {
"rip": "0xaddress",
// other register values
}
},
"after": {
"module": "module_name",
"func": "function_name",
"registers": {
"rip": "0xaddress",
// other register values
}
}
}
]
}
# Install pytest
pip install -r test/requirements-test.txt
python3 /Applications/Binary\ Ninja.app/Contents/Resources/scripts/install_api.py --force
# Run tests
pytest test/test_binja_missinglink.py
Koh M. Nakagawa (@tsunek0h) © FFRI Security, Inc. 2025
This plugin is released under an Apache 2.0 license.