mirror of https://github.com/pwndbg/pwndbg
24 lines
1.4 KiB
Markdown
24 lines
1.4 KiB
Markdown
# Integrating Binary Ninja with pwndbg
|
|
## Requirements
|
|
You need at least the personal edition of Binary Ninja (only tested on version 4.0+) that runs at least Python 3.10 for plugins.
|
|
|
|
## Setup
|
|
Copy (or symlink) [`binja_script.py`](binja_script.py) to your [plugins directory](https://docs.binary.ninja/guide/plugins.html).
|
|
|
|
## Usage
|
|
To start the Binary Ninja integration, open the binary you want to debug in Binary Ninja, then go to `Plugins > pwndbg > Start integration on current view`. This will start the XMLRPC server that pwndbg queries for information.
|
|
|
|
Then, inside GDB, run `set integration-provider binja`, which will start the integration. You can run `set integration-provider none` to disable it again.
|
|
|
|
## Features
|
|
The integration currently syncs symbol names, comments, decompilation, function type signatures, and stack variables.
|
|
|
|
## Commands
|
|
- `bn-sync`: Navigate the Binary Ninja view to the current instruction
|
|
- `decomp ADDR NLINES`: Displays the decompilation for `NLINES` lines at address `ADDR`.
|
|
|
|
## Config Options
|
|
- `bn-autosync`: If set to `yes`, every step will automatically run `bn-sync`
|
|
- `bn-il-level`: Sets the IL level to use for decompilation. Valid values are: `disasm`, `llil`, `mlil`, `hlil`
|
|
- `bn-rpc-host`/`bn-rpc-port`: The host and port to connect to for the XMLRPC server
|
|
- `bn-timeout`: The amount, in seconds, to wait for the XMLRPC server to connect |