Crate falcon [−] [src]
Falcon: A Binary Analysis Framework in Rust.
Falcon is a framework in rust for implementing formal analyses over binary programs. A quick synopsis of Falcon's modules:
- analysis - A fixed-point engine and methods for abstract interpretation over Falcon IL. Example, usable analyses are given.
- executor - A concrete execution engine over Falcon IL.
- graph - A simple directed graph library.
- il - Falcon's Intermediate Language.
- loader - Loaders for binary formats, currently supporting Elf.
- memory - A layered memory model over generic types.
- translator - Translators from native architectures to Falcon IL.
Falcon also has bindings for the scripting language gluon, which makes exploratory analysis over Falcon quick and pleasant.
use falcon::loader::Elf; use falcon::loader::Loader; use std::path::Path; let elf = Elf::from_file(Path::new("test_binaries/simple-0/simple-0"))?; for function in elf.program()?.functions() { for block in function.blocks() { println!("Block {} in Function {:x}", block.index(), function.address()); println!("{}", block); } }
Reexports
pub use error::*; |
Modules
analysis |
Implementations and traits for static analysis over Falcon IL. |
error |
Falcon Error types. |
executor |
Concrete execution over Falcon IL. |
graph |
Implements a directed graph. |
il |
Falcon Intermediate Language. |
loader |
Loading executable binaries into Falcon |
memory |
Efficient memory representations. |
translator |
Translators for various architectures to Falcon IL. |
types |
Useful types used across multiple Falcon modules. |