Skip to content
/ augur Public

Reverse engineering assistant that extracts strings and related pseudo-code from a binary file.

License

Notifications You must be signed in to change notification settings

0xdea/augur

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

augur

build doc

"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: check idalib documentation for additional information.

Changelog

TODO

About

Reverse engineering assistant that extracts strings and related pseudo-code from a binary file.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages