Ignore JMP and treat JX==JNX when diffing basic blocks
Opened this issue · 1 comments
cblichmann commented
Steps to reproduce the problem:
- Diff a program
- Open a function with some differences
- See some basic blocks which are marked as different only because of the jump at the end
What is the expected behavior?
See the following screenshot:
In such cases, it would be helpful for the blocks to be marked as equal.
What went wrong?
They are marked as different.
What version of the product are you using? On what operating system?
BinDiff 6, Win10.
Ported from b/175509898
cblichmann commented
These are actually two differeny things:
- Ignore unconditional jumps at the end of a basic block when computing the small primes product (SPP)
- Detect branch inversion
1 is easy to implement, for 2 we can either just treat all jumps the same or implement some heuristic that detects this.