rhabdomancer v0.10.0
"The road to exploitable bugs is paved with unexploitable bugs."-- Mark DowdRhabdomance 2026-8-20 05:37:30 Author: kitploit.com(查看原文) 阅读量:8 收藏

build doc

"The road to exploitable bugs is paved with unexploitable bugs."

-- Mark Dowd

Rhabdomancer is a blazing fast IDA headless plugin that locates calls to potentially insecure API functions in a binary file. Auditors can backtrace from these candidate points to find pathways allowing access to untrusted input.

Features

  • Blazing fast, headless user experience courtesy of IDA 9.x and idalib-rs Rust bindings.
  • Support for C/C++ binary targets compiled for any architecture implemented by IDA.
  • Bad API function call locations are printed to stdout and marked in the IDB.
  • Known bad API functions are grouped in tiers of badness to help prioritize the audit work.
    • [BAD 0] High priority - Functions that are generally considered insecure.
    • [BAD 1] Medium priority - Interesting functions that should be checked for insecure use cases.
    • [BAD 2] Low priority - Code paths involving these functions should be carefully checked.
  • The list of known bad API functions can be easily customized by editing conf/rhabdomancer.toml.

Articles

See also

Installing

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

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

Compiling

Alternatively, you can build from source:

  1. Download, install, and configure IDA (see https://hex-rays.com/ida-pro).
  2. Install LLVM/Clang (see https://rust-lang.github.io/rust-bindgen/requirements.html).
  3. On Linux/macOS, compile as follows:
    git clone --depth 1 https://github.com/0xdea/rhabdomancer
    cd rhabdomancer
    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/rhabdomancer
    cd rhabdomancer
    $env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
    $env:PATH="\path\to\ida;$env:PATH"
    $env:IDADIR="\path\to\ida" # if not set, the build script will check common locations
    cargo build --release
    

Usage

  1. Make sure IDA is properly configured with a valid license.
  2. Customize the list of known bad API functions in conf/rhabdomancer.toml if needed. You can override the default configuration file location by setting the RHABDOMANCER_CONFIG environment variable.
  3. Make sure the IDADIR environment variable is set if your IDA installation is in a non-standard location.
  4. Run as follows:
    rhabdomancer <binary_file>
    
    Any existing .i64 IDB file will be updated; otherwise, a new IDB file will be created.
  5. Open the resulting .i64 IDB file with IDA.
  6. Select View > Open subviews > Bookmarks
  7. Enjoy your results conveniently collected into an IDA window.

[!NOTE] Rhabdomancer also adds comments at marked call locations.

Compatibility

Only the latest IDA release is officially supported, but older versions may work as well. The following table summarizes the latest compatible release for each IDA version:

IDA versionLatest compatible release
v9.0.240925v0.2.4
v9.0.241217v0.3.5
v9.1.250226v0.6.2
v9.2.250908v0.7.6
v9.3.260213v0.8.1
v9.3.260327v0.9.0
v9.3.260421v0.9.3
v9.4.260714current release

[!NOTE] Check the idalib-rs documentation for additional information.

Credits

This project's development has been supported by the following organizations:

Changelog

TODO

Read more


文章来源: https://kitploit.com/en/posts/github-0xdea-rhabdomancer-0100
如有侵权请联系:admin#unsafe.sh