TLDR InfoSec · STRATEGIES & TACTICS
RESTRUCTURING THE BINARY NINJA DECOMPILER
Summary from the TLDR InfoSec newsletter
Binary Ninja uses a control graph resolution algorithm to undo compiler optimizations by collapsing conditions to generate code that is more akin to what a programmer would write. Conditional complexity explosion leads to unwieldy conditional expressions in decompiled code, which could lead to the Binary Ninja decompiler in version 4.0 and prior crashing, falling back to adding gotos, or generating unsound or inaccurate code. Binary Ninja added a new set of algorithms to transform the control graph structure to optimize control flow recovery that achieved 100% accuracy in its test suite.