# GameMaker 5.3a Reverse-Engineering Wiki

Searchable knowledge base for reverse-engineering GameMaker 5.3a `.exe` runners and extracting `.gmd` source. Built from `../GameMaker 5.3a Reverse Engineering Pipeline.md`.

## Start here by task

| Task | Read |
|---|---|
| "What is this engine and what am I dealing with?" | [00-overview](00-overview.md) → [01-runner-architecture](01-runner-architecture.md) |
| "Extract `.gmd` from a compiled `.exe`" | [15-extraction-pipeline](15-extraction-pipeline.md) (ranked methods) |
| "Recover lost source from dev machine" | [14-gb1-backups](14-gb1-backups.md) |
| "Parse `.gmd` binary myself" | [03-gmd-format](03-gmd-format.md) → [04-dnd-serialization](04-dnd-serialization.md) |
| "Decompiled GML doesn't compile" | [06-gml-syntax-5x](06-gml-syntax-5x.md) |
| "Game has multiplayer / sockets" | [08-39dll-networking](08-39dll-networking.md) |
| "Why does UndertaleModTool fail?" | [13-modern-tool-incompat](13-modern-tool-incompat.md) |
| "Understand `.bno` / `.bnb` proprietary formats" | [16-bno-bnb-notes](16-bno-bnb-notes.md) |
| "Look up tool X" | [09-tool-gmd-recovery](09-tool-gmd-recovery.md) · [10-tool-gm-decompiler-v21](10-tool-gm-decompiler-v21.md) · [11-tool-lateralgm](11-tool-lateralgm.md) · [12-tool-gmksplitter](12-tool-gmksplitter.md) |
| "Glossary / acronym lookup" | [glossary](glossary.md) |
| "Task-based jump table" | [quick-reference](quick-reference.md) |

## Full file index

- [00-overview](00-overview.md) — engine history, scope, why 5.3a is unique
- [01-runner-architecture](01-runner-architecture.md) — appended payload model, Delphi 5 stub, no CLI
- [02-encryption](02-encryption.md) — XOR cipher, runner-as-decryption-oracle flaw
- [03-gmd-format](03-gmd-format.md) — binary layout, serialization block table
- [04-dnd-serialization](04-dnd-serialization.md) — Drag-and-Drop action node binary format
- [05-gml-vm](05-gml-vm.md) — stack VM, interpreter perf characteristics
- [06-gml-syntax-5x](06-gml-syntax-5x.md) — 4.3 → 5.x breaking syntax changes
- [07-gml-core-functions](07-gml-core-functions.md) — `collision_line`, `sprite_add_alpha`, `external_define`
- [08-39dll-networking](08-39dll-networking.md) — TCP/UDP via 39dll, packet workflow
- [09-tool-gmd-recovery](09-tool-gmd-recovery.md) — VBGAMER45 dynamic memory decompiler
- [10-tool-gm-decompiler-v21](10-tool-gm-decompiler-v21.md) — Java static decompiler
- [11-tool-lateralgm](11-tool-lateralgm.md) — open-source `.gmd` parser/editor
- [12-tool-gmksplitter](12-tool-gmksplitter.md) — monolithic-to-VCS-friendly tree
- [13-modern-tool-incompat](13-modern-tool-incompat.md) — UTMT / Altar.NET / FORM-chunk gap
- [14-gb1-backups](14-gb1-backups.md) — auto-backup rotation `.gb1`–`.gb9`
- [15-extraction-pipeline](15-extraction-pipeline.md) — ranked methodology (4 tiers)
- [16-bno-bnb-notes](16-bno-bnb-notes.md) — proprietary save/data format strategy
- [glossary](glossary.md)
- [quick-reference](quick-reference.md)

## Convention

Cross-refs use relative `.md` links. Each page ends with **See also**. Tables compact. Code blocks unchanged from source.
