Analysis updated 2026-05-18
Study how old Nokia phone firmware boots by running it inside an emulator instead of real hardware.
Learn practical reverse engineering techniques using disassembly tools and Ghidra scripts on real firmware.
Contribute analysis toward fully mapping a retro phone's startup sequence from boot to idle.
| bitplane/nokia-dct3-re | alange/llama.cpp | ayushm74/binance-lob-capture | |
|---|---|---|---|
| Stars | 0 | 0 | 0 |
| Language | C++ | C++ | C++ |
| Setup difficulty | hard | moderate | hard |
| Complexity | 5/5 | 4/5 | 4/5 |
| Audience | researcher | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires supplying your own legally obtained Nokia 3210 firmware dump, none is bundled.
This project is a deep, hands-on reverse engineering effort aimed at understanding the internal software of old Nokia phones from the DCT3 era, starting with the classic Nokia 3210. Reverse engineering means studying how a device works from the outside in, without access to the original source code, usually by examining the compiled firmware directly. The goal here is to figure out exactly why an unprovisioned 3210 gets stuck on its CONTACT SERVICE screen when it first boots up, and to recreate that behavior inside an emulator. Rather than running on real hardware, the project uses MAME, an emulator normally known for classic arcade games and old computers, adapted here to run Nokia phone firmware instead. Alongside the emulator driver, the repository includes disassembly tools that turn compiled machine code back into readable instructions, automated scripts for a tool called Ghidra that help label and organize that code, and a long series of detailed written analysis documents explaining what was discovered at each stage. Importantly, this repository does not include any of Nokia's actual copyrighted firmware. Anyone who wants to use it must supply their own legally obtained firmware dump of a 3210 phone, and the project explains where to find one and how to verify it matches using a cryptographic checksum. The current status shows real progress: the team has fully traced why the boot process gets stuck at the CONTACT SERVICE screen and built five separate emulated models that, together, let the boot process move past that screen successfully. Beyond that first milestone, the researchers have also mapped out the entire startup sequence up to the point where the phone would normally become idle and ready to use, tracing the exact internal messaging system the firmware relies on. This is a specialized project for people interested in retro hardware, embedded systems, or low-level reverse engineering, not something aimed at casual users. Everything needed to rebuild and verify the results is provided through simple build commands, once you have supplied your own firmware dump.
A reverse engineering toolkit that emulates old Nokia DCT3-era phone firmware in MAME to figure out why an unprovisioned 3210 gets stuck at boot.
Mainly C++. The stack also includes C++, MAME, Ghidra.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.