Binary File Format Engineering and Reverse Engineering
summary
Covers how bits become numbers, text and floats, then shows real encodings used in practice: two's complement for negatives, protobuf varint and wire types (example decodes 42 and two strings), and compression primitives LZ/RLE/Huffman. Uses file and strings to reverse engineer a 1993 game: finds an index table, identifies 2048 shapes, decodes nine‑byte and 16‑byte records, implements decoders for run‑length image runs and level blobs, and renders full levels from 64 files — the extractor works and reproduces original images.
AI-written summary · about
chapters (23)
- 0:00Intro
- 0:35What are bits
- 1:17Conventions
- 10:43Variable Length
- 13:43Protobuf
- 17:19Compression
- 24:28Encoding
- 26:46Data transforms
- 28:46Variable length codes
- 38:10Bitpacking
- 39:11Questions
- 39:26Why not to make binary files
- 40:38Types of binary files
- 43:38Header and flat files
- 44:28Index and data files
- 44:41Record sequences
- 46:27Chunked files
- 48:50Use cases
- 50:43Working sets
- 55:15Logical Use Cases
- 57:04Finding the Data
- 58:11Using the Data
- 59:37Grouping the Data
related talks
01h 01mWhat’s In A Bit – Designing, Using And Reverse-engineering Binary File Formats
37mBehind Enemy Lines - Reverse Engineering C++ in Modern Ages
21mDemystify Today's Binary Disassembling and How Modern ABI Makes it Easier
24m(Ab)using Compiler Tools
01h 24mOptimising a small real-world C++ application
57mAdventures in Serialization: A Flexible Approach for Embedded Systems in C++
05mEsolangs
01h 04mBeyond the Floating Point Computations - What’s New, What’s Useful?
