
이진 파일에서 잠재적으로 안전하지 않은 API 함수 호출을 찾아내는 취약점 연구 보조 도구.
"익스플로잇 가능한 버그로 가는 길은 익스플로잇 불가능한 버그로 포장되어 있다."
-- Mark Dowd
Rhabdomancer는 바이너리 파일에서 잠재적으로 안전하지 않은 API 함수에 대한 호출을 찾아내는 매우 빠른 IDA 헤드리스 플러그인입니다. 감사자는 이러한 후보 지점에서 역추적하여 신뢰할 수 없는 입력에 접근할 수 있는 경로를 찾을 수 있습니다.

conf/rhabdomancer.toml을 편집하여 쉽게 사용자 지정할 수 있습니다.최신 릴리스를 받는 가장 쉬운 방법은 crates.io를 이용하는 것입니다:
export IDADIR=/path/to/ida # if not set, the build script will check common locations
cargo install 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 install rhabdomancer
또는 소스에서 직접 빌드할 수 있습니다:
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
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
conf/rhabdomancer.toml에서 알려진 위험한 API 함수 목록을 사용자 지정합니다. RHABDOMANCER_CONFIG 환경 변수를 설정하여 기본 구성 파일 위치를 재정의할 수 있습니다.IDADIR 환경 변수가 설정되어 있는지 확인합니다.rhabdomancer <binary_file>
.i64 IDB 파일이 있으면 업데이트되고, 없으면 새 IDB 파일이 생성됩니다..i64 IDB 파일을 IDA로 엽니다.View > Open subviews > Bookmarks를 선택합니다.[!NOTE] Rhabdomancer는 표시된 호출 위치에 주석도 추가합니다.
공식적으로는 최신 IDA 릴리스만 지원되지만, 이전 버전도 작동할 수 있습니다. 다음 표는 각 IDA 버전에 대한 최신 호환 릴리스를 요약한 것입니다:
[!NOTE] 추가 정보는 idalib-rs 문서를 확인하세요.
이 프로젝트의 개발은 다음 조직의 지원을 받았습니다:
normalize_name의 정규화 범위를 확장하는 것을 고려합니다.| IDA 버전 | 최신 호환 릴리스 |
|---|
| v9.0.240925 | v0.2.4 |
| v9.0.241217 | v0.3.5 |
| v9.1.250226 | v0.6.2 |
| v9.2.250908 | v0.7.6 |
| v9.3.260213 | v0.8.1 |
| v9.3.260327 | v0.9.0 |
| v9.3.260421 | v0.9.3 |
| v9.4.260714 | 현재 릴리스 |