Course navigatorUnofficial student prototype · fictional course data

Overview›Seeing Through Obfuscated Code›Other course resources

Tools, and what each one actually produced

A catalogue organised around one column — did this tool produce a working rewritten binary of the original specimen? For most of them the answer is no, and that is not a criticism.

Course-wide reference. No week owns it.

Tool catalogues usually list capabilities. This one lists outputs, because the difference between an expression, a proof, a graph, a lifted module and a rewritten executable is the difference this course exists to teach.

A tool that emits a simpler expression has done something valuable and has not deobfuscated a binary. Saying so is not a complaint about the tool.

What each class of workflow emits

WorkflowInputOutputThe boundary on it
Expression simplifieran extracted expressiona shorter expressionequivalence only if the obligations were discharged
SMT branch provera gate plus a modelSAT / UNSAT / UNKNOWNholds under the stated model and path prefix
Patch consumerfrozen proofs plus a binarya new executableonly inside the approved byte window
Unflattenera flattened binarya rewritten binarycorrect only if successor recovery was correct
Liftermachine codeLLVM IRwell-formed is not faithful

Obfuscators

Four compilers and one post-link rewriter appear in the corpus. Note that “working rewritten binary?” here asks about deobfuscation of the original specimen — an obfuscator producing a valid obfuscated program is the input to this course, not an output of it.

One post-link tool’s eight tested protected outputs all failed at runtime: seven access violations and one hang. They remain in the corpus as static-analysis evidence only.

Manual inspection

No core exercise requires a paid decompiler or a commercial binary-analysis platform. Every studio has a route that works from the supplied source, IR, text disassembly, result files and SVGs — on Linux, offline. A disassembler makes some of them faster and none of them possible.

Demonstration content. Reused — framing and the outputs argument from comp4020-ass2-Ky787 (src/pages/tools/index.astro)