1개월 전 · Jul 17, 2026 12:01 AM
How static analysis tools reconstruct program flow from binary disassembly:
- Basic Block Partitioning: Sequence of instructions with one entry point (no jumps in) and one exit point (ends with conditional or unconditional jump/ret).
- Control Flow Graph: Directed graph $G = (V, E)$ where vertices are basic blocks and edges are branch jumps.
- Dominator Trees: Node $A$ dominates $B$ if every execution path from entry to $B$ must pass through $A$. Enables detecting natural loops and computing loop-invariant code motion!