TLDR InfoSec · STRATEGIES & TACTICS

RESTRUCTURING THE BINARY NINJA DECOMPILER

binary.ninja12 min read

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.