Skip to main content

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

  1. Opened the provided file txt and noticed it looked empty.
  2. Checked raw bytes and found it contains only spaces (0x20) and tabs (0x09), with no normal text.
  3. Treated tab as bit 1 and space as bit 0, then grouped into bytes.
  4. Decoding produced: ff35 ff24 ff23 ff34 46 ff5b ff22 ff14 ff43 ff4f ff4e ff5d
  5. Most values are fullwidth Unicode code points (0xFFxx). Subtracting 0xFEE0 maps them to normal ASCII.
  6. 46 is normal hex for F.

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)