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.

Source Distribution

annotate_lineinfo-0.1.tar.gz (8.1 kB view details)

Uploaded Source

File details

Details for the file annotate_lineinfo-0.1.tar.gz.

File metadata

  • Download URL: annotate_lineinfo-0.1.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.12

File hashes

Hashes for annotate_lineinfo-0.1.tar.gz
Algorithm Hash digest
SHA256 658048266e125afed618ac407388db633e823e378cb9d87c1d425711c5cc3731
MD5 6ba80a44160c078c2ae310e846f5efb3
BLAKE2b-256 1e42aef96036f50b759447194fa9d9200c4684475b453b0d0952e02b16ba693a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page