Alt-girl
Alt-girl
Platform: CUSTOM | Category: Crypto | Type: Challenge | Difficulty: Easy | OS: N/A | **Author: XESXOR Techniques: alt_code_mapping, character_substitution, cp437_decoding
Summary
Walkthrough of the CUSTOM Crypto Alt-girl. The task description contained only special characters:
Description
The task description contained only special characters:
¶☻{↨☼↨○¶‼♣☺‼↓♠♀☺•}
The task name "Alt-girl" hints at Alt codes (CP437 encoding).
Analysis
The symbols in the description are CP437 control characters (codes 0-31), which in DOS are displayed as special graphical symbols. Each symbol has a numeric code in CP437 that corresponds to a letter position in the alphabet (1=a, 2=b, ..., 26=z). Curly braces { and } remain as-is — they are standard ASCII.
CP437 Table (codes 1-31):
☺=1 ☻=2 ♥=3 ♦=4 ♣=5 ♠=6 •=7 ◘=8 ○=9 ◙=10
♂=11 ♀=12 ♪=13 ♫=14 ☼=15 ►=16 ◄=17 ↕=18 ‼=19 ¶=20
§=21 ▬=22 ↨=23 ↑=24 ↓=25 →=26 ←=27 ∟=28 ↔=29 ▲=30 ▼=31
Step-by-step decoding:
| Symbol | CP437 code | Letter |
|---|---|---|
| ¶ | 20 | t |
| ☻ | 2 | b |
| { | 123 | { |
| ↨ | 23 | w |
| ☼ | 15 | o |
| ↨ | 23 | w |
| ○ | 9 | i |
| ¶ | 20 | t |
| ‼ | 19 | s |
| ♣ | 5 | e |
| ☺ | 1 | a |
| ‼ | 19 | s |
| ↓ | 25 | y |
| ♠ | 6 | f |
| ♀ | 12 | l |
| ☺ | 1 | a |
| • | 7 | g |
| } | 125 | } |
| |
Result: tb{REDACTED} — reads as "wow it's easy flag".
Solution
python read-only • copy allowed#!/usr/bin/env python3 """ Alt-girl solver — TaipanByte CTF CP437 control characters (codes 1-31) mapped to alphabet positions (a=1, b=2, ..., z=26) """ cp437_map = { '☺': 1, '☻': 2, '♥': 3, '♦': 4, '♣': 5, '♠': 6, '•': 7, '◘': 8, '○': 9, '◙': 10, '♂': 11, '♀': 12, '♪': 13, '♫': 14, '☼': 15, '►': 16, '◄': 17, '↕': 18, '‼': 19, '¶': 20, '§': 21, '▬': 22, '↨': 23, '↑': 24, '↓': 25, '→': 26, '←': 27, '∟': 28, '↔': 29, '▲': 30, '▼': 31, } description = "¶☻{↨☼↨○¶‼♣☺‼↓♠♀☺•}" flag = '' for ch in description: if ch in ('{', '}'): flag += ch else: code = cp437_map[ch] flag += chr(code + ord('a') - 1) print(f"Flag: {flag}") # tb{REDACTED}
Key Takeaways / Lessons
- Mastering alt_code_mapping, character_substitution, cp437_decoding was key to this challenge.
- Always check for common misconfigurations and verify assumptions.
Crafted by XESXOR Research • 2026-02-14 • CUSTOM • Alt-girl • Difficulty: Easy