rhabdomancer

Crates.iorhabdomancer
lib.rsrhabdomancer
version0.1.1
sourcesrc
created_at2024-11-05 09:31:03.764476
updated_at2024-11-08 20:53:36.238568
descriptionVulnerability research assistant that locates all calls to potentially insecure API functions in a binary file.
homepagehttps://0xdeadbeef.info/
repositoryhttps://github.com/0xdea/rhabdomancer
max_upload_size
id1436259
size110,091
raptor (0xdea)

documentation

https://0xdeadbeef.info/rhabdomancer/rhabdomancer/

README

rhabdomancer

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

-- Mark Dowd

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

Features

  • Blazing fast, headless user experience courtesy of IDA Pro and Binarly's idalib Rust bindings.
  • Support for C/C++ binary targets compiled for any architecture implemented by IDA Pro.
  • Bad API function call locations are printed to stdout and marked with comments in the IDB.
  • Known bad API functions are grouped in tiers of badness to help prioritize the audit work.

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 rhabdomancer as follows:
    $ export IDASDKDIR=/path/to/idasdk90
    $ cargo install rhabdomancer
    

Compiling

Alternatively, you can build the tool 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. Compile rhabdomancer as follows:
    $ git clone https://github.com/0xdea/rhabdomancer
    $ cd rhabdomancer
    $ export IDASDKDIR=/path/to/idasdk90 # or edit .cargo/config.toml
    $ cargo build --release
    

Usage

  1. Make sure IDA Pro is properly configured with a valid license.
  2. Run rhabdomancer as follows:
    $ rhabdomancer [binary file]
    
  3. Open the resulting .i64 IDB file with IDA Pro.
  4. Select Search > Text..., flag Find all occurrences, and search for [BAD .
  5. Enjoy your results conveniently collected in an IDA Pro window (but double check that all results are displayed, as text search is buggy and sometimes misses some comments).

Tested with

  • IDA Pro 9.0.240925 on macOS arm64.

Changelog

TODO

Commit count: 88

cargo fmt