whatisgithub

What is nokia-dct3-re?

bitplane/nokia-dct3-re — explained in plain English

Analysis updated 2026-05-18

0C++Audience · researcherComplexity · 5/5Setup · hard

In one sentence

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.

Mindmap

mindmap
  root((repo))
    What it does
      Reverse engineers Nokia firmware
      Emulates boot in MAME
      Explains CONTACT SERVICE stall
    Tech stack
      C++
      MAME emulator
      Ghidra scripts
      Capstone disassembler
    Use cases
      Retro phone research
      Firmware analysis
      Embedded reverse engineering study
    Audience
      Reverse engineers
      Retro hardware hobbyists

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study how old Nokia phone firmware boots by running it inside an emulator instead of real hardware.

USE CASE 2

Learn practical reverse engineering techniques using disassembly tools and Ghidra scripts on real firmware.

USE CASE 3

Contribute analysis toward fully mapping a retro phone's startup sequence from boot to idle.

What is it built with?

C++MAMEGhidraCapstonePython

How does it compare?

bitplane/nokia-dct3-realange/llama.cppayushm74/binance-lob-capture
Stars000
LanguageC++C++C++
Setup difficultyhardmoderatehard
Complexity5/54/54/5
Audienceresearcherdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires supplying your own legally obtained Nokia 3210 firmware dump, none is bundled.

So what is it?

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.

Copy-paste prompts

Prompt 1
Explain how this project uses MAME to emulate Nokia DCT3 phone firmware instead of arcade games.
Prompt 2
Help me verify my own Nokia 3210 firmware dump against the SHA-256 checksum this repo expects.
Prompt 3
Walk me through the CONTACT SERVICE boot stall this repo reverse engineered and how it gets cleared.
Prompt 4
Show me how to run the make build and make verify commands to reproduce this project's results.

Frequently asked questions

What is nokia-dct3-re?

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.

What language is nokia-dct3-re written in?

Mainly C++. The stack also includes C++, MAME, Ghidra.

How hard is nokia-dct3-re to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is nokia-dct3-re for?

Mainly researcher.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.