Quick start
Start with a local ELF
Start with an ELF you trust. The workbench lets you inspect it without running or uploading it. Once you have a function in mind, the CLI can save its CFG or lift artifacts.
Prerequisites
Clone the repository with its submodules. Rust 1.96 is pinned by rust-toolchain.toml, and Cargo.lock fixes Rust dependencies. The full demo path also needs Clang with x86-64 ELF and LLVM IR support. Native execution comparisons require Linux x86-64; the repository documents a Docker path for macOS.
cargo test --locked --workspace
cargo run --locked --bin hydir
The desktop app opens local ELF files. If you already know the function you want, select it on launch:
cargo run --locked --bin hydir -- \
--open-local /path/to/program.elf function_name
Inspect before lifting
The CLI exposes the same native import and function-scoped recovery path. Replace function_name with a nonzero-size ELF function symbol. The lift command requires an explicit two-argument unsigned 64-bit ABI assertion; HydIR does not infer that prototype.
cargo run --locked --bin hydirctl -- inspect /path/to/program.elf
cargo run --locked --bin hydirctl -- cfg /path/to/program.elf function_name
cargo run --locked --bin hydirctl -- lift \
/path/to/program.elf function_name \
--assume-u64x2 --output lifted.ll
It is normal for the import to succeed and the lift to stop: reading a file and modeling its instructions are different steps. The pipeline guide explains what each result means.
Use the trusted fixtures
For a reproducible first run on Linux x86-64, use the checked-in demo scripts. They build controlled inputs, save artifacts under target/, and compare finite cases with native execution.
bash scripts/demo-local.sh
bash scripts/demo-corpus.sh
The validation path executes its original fixture and requires --trusted-fixture. Use these scripts only with the repository's trusted samples. Follow one function in detail in the blogs.
Further reference
The README quick start carries current commands. The Python SDK README covers its authenticated service client.