Skip to main content

Annotate IDA with source and line number information from a PDB

Project description

annotate_lineinfo

This IDAPython script/plugin will parse the PDB for the loaded executable and annotate the disassembly with source and line number information.

WinDbg TTD tutorial sample screenshot

Usage

Script

  • Option 1) Run annotate_lineinfo.py as a regular IDAPython script.

  • Option 2) From another script or the IDAPython console:

import annotate_lineinfo
annotate_lineinfo.ida_annotate_lineinfo()

Plugin

To install

  • Option 1) Run python setup.py install --install-ida-plugin=PATH to install annotate_lineinfo_plugin.py to PATH\plugins
    • If PATH is not specified, %IDAUSR% will be tried first
    • If %IDAUSR% does not exist, it defaults to %APPDATA%\Hex-Rays\IDA Pro
  • Option 2) Manually place annotate_lineinfo_plugin.py in the plugins directory of your IDA installation.

Annotate entire file

  • Use shortcut key Alt-Shift-A or run from Edit->Annotate lineinfo menu.

Disassembly view popup menu

  • Right click inside a function, select annotate
  • Select a range of instructions, right click, select annotate

Functions view popup menu

  • Select one or more functions, right click, select annotate

Each of the above actions has a corresponding remove annotations action.

On load, annotate_lineinfo attempts to locate the PDB in the following locations:

  • _NT_SYMBOL_PATH if set
  • IDA's default PDB download directory %TEMP%\ida
  • MSDIA defaults - Path in debug directory of executable, same path as executable

You may specify the PDB path manually, or request another auto-locate attempt (e.g. after IDA downloads the PDB), from the Edit->Annotate lineinfo menu.

Caveats

Only runs on Windows. This script makes use of the COM API provided by msdia[ver].dll to parse the PDB.

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for annotate-lineinfo, version 0.1
Filename, size File type Python version Upload date Hashes
Filename, size annotate_lineinfo-0.1.tar.gz (8.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page