Overview of QBinDiff
mainQBinDiff is an experimental binary-diffing tool that treats diffing as a Network Alignment Quadratic Problem. Unlike traditional tools like Bindiff, QBinDiff is designed for high flexibility, allowing users to programmatically tune the diffing process.
Key capabilities include:
- Custom Features: Define your own criteria for matching (e.g., data-oriented instead of just control-flow).
- Enforced Matches: Manually enforce specific matches between nodes.
- Tunable Emphasis: Choose to emphasize either function content (similarity) or the callgraph (topology).
Important Considerations:
- Experimental Status: It is a tool for power-users. Obtaining high-quality results typically requires tuning various parameters, features, thresholds, and weights.
- Memory Constraints: There is a limit on binary size. Attempting to diff binaries with more than 10,000 functions may result in Out of Memory (OOM) errors.
- Performance: QBinDiff prioritizes flexibility over execution speed.