Перейти к содержимому

How Do People Read a Program Without Its Source Code? (Reverse Engineering Explained)

Byteward

0:00 / 0:00

How Do People Read a Program Without Its Source Code? (Reverse Engineering Explained)

12 просмотров · 3 дн. назад
Byteward
7 подписчиков
12 просмотров · 3 дн. назад
Every app you install is machine code: no names, no comments, just numbers. Yet security researchers, game preservationists and now AI tools read programs like this every day. How? We wrote a tiny program, compiled it, and took it apart, step by step. Every byte, instruction and line of decompiled code on screen is real output from gcc and Ghidra. what a compiler throws away: comments, names, even the shape of your logic strip: deleting the last list of names disassembly: bytes back into instructions (and why starting one byte off gives nonsense) basic blocks and the control flow graph: finding loops and ifs decompilation: back to C-like code, with placeholder names the human part: clues, renaming, static vs dynamic analysis, and how WannaCry was stopped Ghidra, and the Super Mario 64 decompilation project AI joins in: GhidraMCP, REA, Microsoft's Project Ire, and why code that builds isn't code that's correct is reverse engineering legal? (US and EU, not legal advice) The coins program is our own example. Facts about tools, research and law come from their own published pages and papers, listed below. Chapters 0:00 Just numbers 0:41 Compiling our tiny program 1:18 What the compiler throws away 2:13 Disassembly 2:54 Finding the shape: control flow graphs 3:29 Decompilation 4:09 Detective work: clues, renaming, WannaCry 5:19 Ghidra and Super Mario 64 6:05 AI joins in 7:26 Is it legal? 7:56 How to read a program without its source References C. Cifuentes, Reverse Compilation Techniques (PhD thesis, QUT, 1994) Andriesse et al., An In-Depth Analysis of Disassembly on Full-Scale x86/x64 Binaries (USENIX Security 2016): https://www.usenix.org/system/files/c... GNU strip: https://sourceware.org/binutils/docs/... Ghidra: https://github.com/NationalSecurityAg... NSA, Four Years Later: The Impacts of Ghidra's Public Release: https://csiac.dtic.mil/articles/four-... Super Mario 64 decompilation: https://github.com/n64decomp/sm64 MalwareTech, How to Accidentally Stop a Global Cyber Attacks (2017): https://www.malwaretech.com/2017/05/h... Cisco Talos, WannaCry (2017): https://blog.talosintelligence.com/wa... GhidraMCP: https://github.com/LaurieWired/GhidraMCP Model Context Protocol: https://modelcontextprotocol.io/docs/... REA: https://github.com/morluto/rea Microsoft Research, Project Ire: https://www.microsoft.com/en-us/resea... Liu, Raff, Micinski, When LLM Decompilers Recompile More and Preserve Less (2026): https://arxiv.org/abs/2609.05370 17 U.S.C. 1201: https://www.law.cornell.edu/uscode/te... 37 CFR 201.40: https://www.ecfr.gov/current/title-37... Directive 2009/24/EC: https://eur-lex.europa.eu/eli/dir/200... Narration: synthetic voice (Kokoro). Music: "Vastness" by Andrew Ev (Mixkit), intro and outro only. #reverseengineering #cybersecurity #programming