Eggs Over Easy
Challenge
Content preserved from the original writeup source. Minimal normalization was applied to fit platform format.
Solution
Original Writeup Content (Preserved)
Eggs Over Easy - Writeup
Challenge
Eggs Over Easy (100)
Hint: "If you know what goes well with eggs, this will be over easily..."
Solve Steps
- Opened the provided file
txtand noticed it looked empty. - Checked raw bytes and found it contains only spaces (0x20) and tabs (0x09), with no normal text.
- Treated tab as bit 1 and space as bit 0, then grouped into bytes.
- Decoding produced: ff35 ff24 ff23 ff34 46 ff5b ff22 ff14 ff43 ff4f ff4e ff5d
- Most values are fullwidth Unicode code points (0xFFxx). Subtracting 0xFEE0 maps them to normal ASCII.
46is normal hex forF.
Flag
UDCTF{B4con}
Solver Code
from pathlib import Path
# Read hidden whitespace payload
raw = Path("txt").read_bytes()
# Interpret tab as 1, space as 0
bits = "".join("1" if b == 0x09 else "0" for b in raw)
# Convert each 8 bits to one byte and decode text
decoded = bytes(int(bits[i:i+8], 2) for i in range(0, len(bits), 8)).decode()
print("decoded:", decoded)
# Convert hex tokens to final ASCII:
# - Fullwidth forms (ffxx) are converted by subtracting 0xFEE0
# - Normal 2-digit hex is converted directly
out = []
for token in decoded.strip().split():
if token.lower().startswith("ff") and len(token) == 4:
out.append(chr(int(token, 16) - 0xFEE0))
elif len(token) == 2:
out.append(chr(int(token, 16)))
else:
out.append("?")
flag = "".join(out)
print("flag:", flag)