Crate augur

Source
Expand description

augur - Tool to extract strings and related pseudo-code Copyright (c) 2024-2025 Marco Ivaldi raptor@0xdeadbeef.info

“In fact I’ve actually triggered buffer overflows by just entering my real name.”

– A.

Augur is a blazing fast IDA Pro headless plugin that extracts strings and related pseudo-code from a binary file. It stores pseudo-code of functions that reference strings in an organized directory tree.

§Features

  • Blazing fast, headless user experience courtesy of IDA Pro 9 and Binarly’s idalib Rust bindings.
  • Support for binary targets for any architecture implemented by IDA Pro’s Hex-Rays decompiler.
  • Decompilation feature based on the decompile_to_file API exported by haruspex.
  • Pseudo-code of each function that references a specific string is stored in a separate directory.

§Blog post

§See also

§Installing

The easiest way to get the latest release is via crates.io:

  1. Download, install, and configure IDA Pro (see https://hex-rays.com/ida-pro).
  2. Download and extract the IDA SDK (see https://docs.hex-rays.com/developer-guide).
  3. Install LLVM/Clang (see https://rust-lang.github.io/rust-bindgen/requirements.html).
  4. On Linux/macOS, install as follows:
    export IDASDKDIR=/path/to/idasdk
    export IDADIR=/path/to/ida # if not set, the build script will check common locations
    cargo install augur
    On Windows, instead, use the following commands:
    $env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
    $env:PATH="\path\to\ida;$env:PATH"
    $env:IDASDKDIR="\path\to\idasdk"
    $env:IDADIR="\path\to\ida" # if not set, the build script will check common locations
    cargo install augur

§Compiling

Alternatively, you can build from source:

  1. Download, install, and configure IDA Pro (see https://hex-rays.com/ida-pro).
  2. Download and extract the IDA SDK (see https://docs.hex-rays.com/developer-guide).
  3. Install LLVM/Clang (see https://rust-lang.github.io/rust-bindgen/requirements.html).
  4. On Linux/macOS, compile as follows:
    git clone --depth 1 https://github.com/0xdea/augur
    cd augur
    export IDASDKDIR=/path/to/idasdk # or edit .cargo/config.toml
    export IDADIR=/path/to/ida # if not set, the build script will check common locations
    cargo build --release
    On Windows, instead, use the following commands:
    git clone --depth 1 https://github.com/0xdea/augur
    cd augur
    $env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
    $env:PATH="\path\to\ida;$env:PATH"
    $env:IDASDKDIR="\path\to\idasdk"
    $env:IDADIR="\path\to\ida" # if not set, the build script will check common locations
    cargo build --release

§Usage

  1. Make sure IDA Pro is properly configured with a valid license.
  2. Run as follows:
    augur <binary_file>
  3. Find the extracted pseudo-code of each decompiled function in the binary_file.str directory, organized by string:
    vim <binary_file>.str
    code <binary_file>.str

§Compatibility

  • IDA Pro 9.0.241217 - Latest compatible: v0.2.3.
  • IDA Pro 9.1.250226 - Latest compatible: current version.

Note: only the unix target family is currently supported, check idalib documentation if you’re interested in a windows port.

§Changelog

§TODO

Functions§

run
Extract strings and pseudo-code of each function that references them from the binary at filepath and save them in filepath.str.