writeup

glitch

Do not resist the g̵͕̗͑̅l̶̢̂̚ḭ̶̐͗t̴͔̞̒͐c̸̭͈̄h̷̨̞͊͠.

Name: glitch
Author: pinebery
Flag format: tjctf{}
Objective: Recover the hidden message from the glitched image and wrap it in `tjctf{}`.

glitch

Challenge Overview

Name: glitch

Author: pinebery

Description: Do not resist the g̵͕̗͑̅l̶̢̂̚ḭ̶̐͗t̴͔̞̒͐c̸̭͈̄h̷̨̞͊͠.

Flag format: tjctf{}

Objective: Recover the hidden message from the glitched image and wrap it in tjctf{}.

Files Provided

  • `glitch.png` (provided image)

Solution Plan

1. Inspect the provided glitched image and focus on the strong horizontal color bands instead of the noise.

2. Clean or downsample the image to make the color bands easier to identify.

3. Read the bands as resistor color code digit pairs, convert each pair into a decimal ASCII value, and wrap the decoded text in tjctf{}.

Code (Exploit Script)

#!/usr/bin/env python3

digits = {
    "black": "0",
    "brown": "1",
    "red": "2",
    "orange": "3",
    "yellow": "4",
    "green": "5",
    "blue": "6",
    "violet": "7",
    "gray": "8",
    "white": "9",
}

pairs = [
    ("blue", "gray"),      # 68 -> D
    ("green", "brown"),    # 51 -> 3
    ("gray", "orange"),    # 83 -> S
    ("yellow", "white"),   # 49 -> 1
    ("violet", "brown"),   # 71 -> G
    ("violet", "gray"),    # 78 -> N
    ("yellow", "orange"),  # 43 -> +
    ("gray", "yellow"),    # 84 -> T
    ("blue", "white"),     # 69 -> E
    ("blue", "violet"),    # 67 -> C
    ("violet", "red"),     # 72 -> H
    ("white", "green"),    # 95 -> _
    ("green", "gray"),     # 58 -> :
    ("yellow", "brown"),   # 41 -> )
]

message = "".join(chr(int(digits[a] + digits[b])) for a, b in pairs)

print(message)
print(f"tjctf{{{message}}}")

Flag

tjctf{D3S1GN+TECH_:)}

Notes

The decoded inner text is D3S1GN+TECH_:).