Open resrever opened 1 year ago
When working on a .bndb, analysis is cached so it hides the HLIL non-determinism. This works very well for my use case, as I can generate the .bndb multi-threaded and test faster with the cached results.
One minor thing to note is that even with the .bndb the MLIL SSA still non-deterministically assigns variable names to the phi functions.
Version and Platform (required):
Bug Description: Different analyses introduce non-determinism into Binary Ninja. There appear to be two primary sources of the differences:
These differences carry through to HLIL analysis.
Steps To Reproduce: Run my
test_binja_consistency.py
script that runs analysis multiple times until it sees a difference. This script displays differences at several different IL levels, and also outputs{il_form}.baseline
and{il_form}.other
files for use with a better diff utility.Expected Behavior: Consistent results when running analysis repeatedly.
Additional Information:
I am attaching 3 files:
.baseline
and.other
files can be diffed using any diff utility (e.g.diff mlil.*
,colordiff mlil.*
, orvim -d mlil.*
)test_binja_consistency.zip il_diffs.zip df.zip