How to Build A Decompiler
summary
Describes the architecture and transformation pipeline used to turn native or bytecode into equivalent high-level source, covering theoretical foundations, limitations and trade-offs of each transformation step. Presents specific techniques and heuristics to improve the readability of decompiled output, evaluates practical limits and usefulness of decompilation, and gives a brief overview of common obfuscation methods and their implications.
AI-written summary · about
chapters (17)
- 0:00Start
- 7:57DECOMPILATION STAGES
- 11:08EXPRESSION DECOMPILER - IMPLEMENTATION DETAILS
- 11:39SINGLE STATIC ASSIGNMENT AND PHI FUNCTIONS
- 15:51TYPE INFERENCE - THE SOLUTION
- 20:03THREE STAGE ALGORITHM - STAGES 2 AND 3
- 23:39THE CONTROL FLOW GRAPH - SAMPLE
- 26:16DOMINATORS
- 27:31DOMINANCE FRONTIERS
- 30:24IF RECONSTRUCTION ALGORITHM
- 31:41IF RECONSTRUCTION EXAMPLE
- 36:09LOOP RECONSTRUCTION ALGORITHM
- 37:25LOOP RECONSTRUCTION EXAMPLE
- 41:23SYNTAX SUGAR/ LANGUAGE FEATURES DECOMPILATION
- 42:18PATTERN MATCHING SAMPLE - SWITCH BY STRING
- 45:36PATTERN MATCHING UHITS
- 46:37CODE READABILITY IMPROVEMENTS
related talks
15mObfuscation in Mobile Apps
45m"Advanced Malware Threat: handling obfuscated code using..."
42mUnderstanding the Kotlin to Dalvik bytecode translation
01h 04mClojure Compilation, Backwards
54mLost and Found in Translation
36mMaster the Art of Code Obfuscation from Simple to Advanced
21mDemystify Today's Binary Disassembling and How Modern ABI Makes it Easier
26mAn Effective Approach to Software Obfuscation
