The ParseAPI is a platform-independent API for parsing and extracting
control flow graphs from binary code.
- Machine learning based gap parsing rules are now integrated into Dyninst, and no longer need to be compiler-specific. Gap parsing
should find significantly more function entry points, particularly
when run on code generated by non-GNU compilers.
- Loops are now represented in ParseAPI. The loop interface has been extended to represent
irreducible loops correctly; see the manual for details.
- ParseAPI should consume much less memory for representing block extents and function extents.
- ParseAPI's tail call identification has been improved.
- Indirect control flow is now analyzed by a principled, slicing-based approach and its accuracy is substantially improved.
- Improved jump table handling
- Improved memory efficiency
- Improved tail call analysis
- Added Block::getInsn(Offset) and Block::getInsns() to acquire
InstructionAPI instructions from a Block
- Improved non-returning call analysis
- Modification support
- Supported platforms: