An abstract interpretation-based static analysis platform for disassembling and analyzing binary executables to recover control flow graphs.
Jakstab is a static analysis platform for binary executables that combines disassembly with abstract interpretation-based data flow analysis. It translates machine code to an intermediate language while performing analysis to recover reliable control flow graphs from binaries. The framework is designed to analyze executables and support the design of custom analyses for binary code.
Security researchers, reverse engineers, and binary analysis developers working on static analysis of executables, particularly those focused on control flow reconstruction and program verification.
Jakstab provides an integrated approach to binary analysis where disassembly and data flow analysis inform each other, enabling more precise control flow reconstruction than traditional sequential disassembly. Its abstract interpretation foundation allows for adaptable analysis domains and hardware platform support.
The Jakstab static analysis platform for binaries
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Combines disassembly with data flow analysis to resolve branch targets and discover code dynamically, enabling precise control flow reconstruction as described in the VMCAI 2009 paper.
Supports multiple abstract domains like bounded address tracking and interval analysis, allowing for customizable and precise static analysis tailored to specific needs, as listed in the Supported Analyses section.
Designed for high-precision analysis, particularly effective for obfuscated binaries and device driver verification, evidenced by publications such as FMCAD 2010.
Built to be adaptable to different hardware platforms through customized instruction decoding, though current implementation is limited to x86, as per the README.
The README admits it's a research prototype with interfaces likely to change without notice, making it unreliable for long-term projects.
Only supports 32-bit x86 processors and Windows PE or Linux ELF executables, excluding modern 64-bit binaries and other architectures.
Documentation is described as sparse in the README, hindering adoption and making it difficult for users to implement custom analyses.
Lacks graphical user interfaces, requiring command-line invocation which may be less accessible for those accustomed to integrated development environments.