Enchant

Category: Misc

Difficulty: Easy → Medium (if unfamiliar with encodings)

File: mystery.txt

Author’s hint: “I was playing minecraft, and found this strange enchantment on the enchantment table.”


TL;DR

The file text is mojibaked Unicode that should be re‑interpreted as Windows‑1252 bytes and then decoded as UTF‑8, revealing Standard Galactic Alphabet (SGA) glyphs (the Minecraft enchantment table script). Transliterate SGA → Latin to get:

minecraft is fun → Flag: scriptCTF{minecraftisfun}

Step‑by‑step (copy/paste into Notion)

1) Inspect the given text

Content provided:

ᒲ╎リᒷᓵ∷ᔑ⎓ℸ ̣ ╎ᓭ⎓⚍リ

Clue mentions Minecraft and enchantment table → likely SGA.

2) Recognize mojibake

The text contains many characters like ╎, ãƒ, á’—classic signs that UTF‑8 bytes were mis‑decoded as Windows‑1252 (aka cp1252). Our goal: reconstruct the original UTF‑8.

3) Fix the encoding

Use any one method below.

Method A — Python one‑liner

bad = "ᒲ╎リᒷᓵ∷ᔑ⎓ℸ ̣ ╎ᓭ⎓⚍リ"
fixed = bad.encode("cp1252").decode("utf-8")
print(fixed)

Output:

ᒲ╎リᒷᓵ∷ᔑ⎓ℸ ̣ ╎ᓭ⎓⚍リ

Method B — CyberChef (no code)

  1. Paste the mojibaked string into the input.
  1. Operations:
    • Encode TextWindows‑1252 (this turns the visible text back into the original byte stream), then
    • Decode TextUTF‑8 (renders the intended Unicode).
  1. You should now see the SGA glyphs: ᒲ╎リᒷᓵ∷ᔑ⎓ℸ ̣ ╎ᓭ⎓⚍リ.

(If CyberChef’s “Magic” also works, great; but the two explicit steps above are deterministic.)

4) Identify the script (SGA)

The output visibly looks like the Minecraft enchantment table runes — that’s Standard Galactic Alphabet.

5) Transliterate SGA → Latin

For this phrase we only need the following glyphs:

SGALatin
m
i
n
e
c
r
a
f
t
s
u

Transliteration:

ᒲ ╎ リ ᒷ ᓵ ∷ ᔑ ⎓ ℸ   ╎ ᓭ ⎓ ⚍ リ
m i n e c r a f t   i s f u n

“minecraft is fun”

6) Format the flag

The challenge says: “Wrap the flag in scriptCTF{} and no spaces.

Final:

scriptCTF{minecraftisfun}

Verification / Automation Snippets

Quick Python checker

bad = "ᒲ╎リᒷᓵ∷ᔑ⎓ℸ ̣ ╎ᓭ⎓⚍リ"
fixed = bad.encode("cp1252").decode("utf-8")
# Minimal map for letters seen in this challenge
sga_map = {
    "ᒲ":"m","╎":"i","リ":"n","ᒷ":"e","ᓵ":"c",
    "∷":"r","ᔑ":"a","⎓":"f","ℸ":"t","ᓭ":"s","⚍":"u"
}
plain = "".join(sga_map.get(ch, ch) for ch in fixed)
flag = "scriptCTF{" + plain.replace(" ", "") + "}"
print(fixed)  # SGA text
print(plain)  # minecraft is fun
print(flag)   # scriptCTF{minecraftisfun}

Common pitfalls & tips

  • Wrong direction in CyberChef: Make sure you encode as cp1252 first (to bytes), then decode as UTF‑8.
  • Combining dot below (U+0323) after ℸ: You might see ℸ ̣ — it’s just a combining mark; doesn’t affect the message.
  • Online SGA charts vary visually but the mapping for these glyphs is consistent.
  • If you see lots of Ã, â, ã in a CTF string, think mojibake.