Illustrative IL Block Diff Workbench

ID-and-text demo
Identical-label fraction: 0.00
Labeled-edge overlap: 0.00
Label-character edits: 0
Shared block IDs: 0 / 0
Binary A: validate_license_key (v1) CFG View A
Unchanged
Modified
Removed
Binary B: validate_license_key_v2 (v2 Patched) CFG View B
Unchanged
Modified
Added

Instruction Line-by-Line Diff

Click any Basic Block node above to inspect differences

Binary A Instructions

(No block selected)

Binary B Instructions

(No block selected)

Separate label similarity from program equivalence

Can matching blocks prove two binaries behave the same?

This browser demo pairs blocks with identical IDs and compares their supplied label text. Presets illustrate differences; Custom Input accepts block-label JSON, not executable binaries. It performs no lifting or QBinDiff analysis.

IDs determine correspondence. Renaming an ID makes otherwise identical text appear added/deleted. Line differences align by position; they are not semantic proofs or an instruction-aware edit script. A metric alone cannot certify a patch or vulnerability.

Try a worked example

Keep ID bb0 on both sides but change mov eax, 0 to mov eax, 1. The shared-ID fraction stays 1 / 1; the identical-label fraction becomes 0.00 and the character edit count becomes 1. Custom blocks have no edges, so 1.00 edge overlap means an empty edge union, not proven structural equivalence.

What real IL analysis adds

Binary Ninja’s IL family represents native instruction semantics at several abstraction levels. LLIL retains lower-level operations; MLIL introduces variables and data-flow analysis; HLIL adds higher-level control flow and simplification. This page displays authored examples of those forms. If a preset lacks the selected view, the selector now switches to its MLIL fallback. Binary Ninja: BNIL overview

What QBinDiff actually does

Quarkslab describes QBinDiff as experimental graph alignment using configurable features and relationships between functions. This page’s shared-ID lookup is a different, much simpler comparison; the project link explains the actual tool rather than validating these scores. Quarkslab: QBinDiff project

Know what each number counts

Identical-label fraction counts equal trimmed labels over all distinct IDs. Shared block IDs includes modified labels. Labeled-edge overlap compares exact source-to-target strings. Label-character edits sum text Levenshtein distances for shared IDs. Export includes these definitions and the demonstration scope.

Sources and further reading
Super generates helpful tools and automates fact-checking across the internet proactively. If you enjoyed this tool, build your own with Super and share it with a friend.