Nokia 3310
XESXOR9/2/20263 min read
#misc#custom#easy#t9/multi-tap-phone-keypad-deco#character-position-mapping-by-
Nokia 3310
Platform: hackerlab.pro | Category: Misc | Type: Challenge | Difficulty: Easy | OS: NA | Author: XESXOR | Date: 2025-12-24 | Status: Solved Techniques: T9/Multi-tap phone keypad decoding, Character position mapping by digit repetition count
Summary
Позвони мне (Call me)
Nokia 3310 - hackerlab.pro
Description
Позвони мне (Call me)
Flag format: CODEBY{text}
Files
nokia3310.txt:
888 33 777 999 0 777 88 4 4 33 3 0 7 44 666 66 33
Analysis
The task name "Nokia 3310" and description "Позвони мне" (Call me) clearly point to T9/Multi-tap encoding - a text input method on old phones with numeric keypads.
T9 Keypad Mapping
On Nokia phones, each digit corresponds to several letters:
| Digit | Letters |
|---|---|
| 2 | A B C |
| 3 | D E F |
| 4 | G H I |
| 5 | J K L |
| 6 | M N O |
| 7 | P Q R S |
| 8 | T U V |
| 9 | W X Y Z |
| 0 | (space) |
| |
Number of presses determines the letter:
- 1 press = first letter
- 2 presses = second letter
- 3 presses = third letter
- etc.
Decoding
| Group | Digit | Count | Letters | Result |
|---|---|---|---|---|
| 888 | 8 | 3 | T,U,V | V |
| 33 | 3 | 2 | D,E,F | E |
| 777 | 7 | 3 | P,Q,R,S | R |
| 999 | 9 | 3 | W,X,Y,Z | Y |
| 0 | 0 | 1 | (space) | _ |
| 777 | 7 | 3 | P,Q,R,S | R |
| 88 | 8 | 2 | T,U,V | U |
| 4 | 4 | 1 | G,H,I | G |
| 4 | 4 | 1 | G,H,I | G |
| 33 | 3 | 2 | D,E,F | E |
| 3 | 3 | 1 | D,E,F | D |
| 0 | 0 | 1 | (space) | _ |
| 7 | 7 | 1 | P,Q,R,S | P |
| 44 | 4 | 2 | G,H,I | H |
| 666 | 6 | 3 | M,N,O | O |
| 66 | 6 | 2 | M,N,O | N |
| 33 | 3 | 2 | D,E,F | E |
| |
Result: REDACTED
This is a reference to the legendary durability of the Nokia 3310!
Solution
Python script
python read-only • copy allowed#!/usr/bin/env python3 """Nokia 3310 T9/Multi-tap decoder""" keypad = { '2': 'ABC', '3': 'DEF', '4': 'GHI', '5': 'JKL', '6': 'MNO', '7': 'PQRS', '8': 'TUV', '9': 'WXYZ', '0': ' ' } encoded = "888 33 777 999 0 777 88 4 4 33 3 0 7 44 666 66 33" groups = encoded.split(' ') result = "" for group in groups: if not group: continue digit = group[0] count = len(group) if digit == '0': result += ' ' elif digit in keypad: letters = keypad[digit] # Index = (number of presses - 1) mod length of letter string result += letters[(count - 1) % len(letters)] print(f"Decoded: {result}") print(f"Flag: CODEBY{{{result.lower()}}}")
Output
Decoded: REDACTED
Flag: CODEBY{REDACTED}
References
- T9 (predictive text)
- Multi-tap
- Nokia 3310