pwndbg/docs/binja_integration.md

1.4 KiB

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 to your plugins directory.

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