There is no dedicated documentation at the moment, but Jakstab comes with relatively thorough Javadoc annotations and comments. The most complete document describing all aspects of Jakstab is currently my dissertation:
Quick StartJakstab is invoked via the command line, it comes with both a Windows and a Unix shell script for setting the correct classpath. The package contains a set of examples for unit testing, you can try it out on those by running jakstab -m input/helloworld.exe for a default Bounded Address Tracking run on the helloworld executable, or by running jakstab -m input/jumptable.exe --cpa xfi for analyzing a jumptable example with Bounded Address Tracking, forward expression substitution, and interval analysis. It is still a research prototype, so all interfaces are likely to change with new versions without further notice. Documentation is still sparse, but will hopefully improve over time. The analyses (CPAs) that should be working correctly are:
PublicationsThe CAV 2008 tool paper describes an early implementation of Jakstab, which was based on iterative constant propagation and branch resolution:
Our VMCAI 2009 paper introduces a generic framework for disassembly and control flow reconstruction guided by data flow analysis and defines the theoretical background for Jakstab. The framework is not fixed in its choice of domain, but allows to combine control flow reconstruction with any data flow analysis that provides abstract evaluation of expressions:
In FMCAD 2010, we give an overview on the Jakstab architecture and describe Bounded Address Tracking, a practical abstract domain used for control flow reconstruction and verification of API usage specifications on device driver binaries:
|