[๐Ÿฅ‰ Bronze 3] ์ด๋ชจ์ง€ ๋‹จ์ผ์น˜ํ™˜์„ ์˜์–ด ๋ฌธ๋งฅ์œผ๋กœ ๋˜์งš๊ธฐ โ€” DreamHack emoji ํ’€์ด

2026-07-15ยท1๋ถ„ ์ฝ๊ธฐยท

[๐Ÿฅ‰ Bronze 3] ์ด๋ชจ์ง€ ๋‹จ์ผ์น˜ํ™˜์„ ์˜์–ด ๋ฌธ๋งฅ์œผ๋กœ ๋˜์งš๊ธฐ โ€” DreamHack emoji ํ’€์ด

ํ”Œ๋ž˜๊ทธ๊ฐ€ 210์ž์งœ๋ฆฌ ์ด๋ชจ์ง€ ์—ด๋กœ ๋ฐ”๋€Œ์–ด ์žˆ๋‹ค. 26์ข…์˜ ์ด๋ชจ์ง€๋Š” 24๊ฐœ ์•ŒํŒŒ๋ฒณ๊ณผ ์ค‘๊ด„ํ˜ธ์— ์ผ๋Œ€์ผ ๋Œ€์‘๋œ๋‹ค. โ“œ๏ธ=m ํžŒํŠธ์™€ DH{ ์ ‘๋‘์‚ฌ, ๊ทธ๋ฆฌ๊ณ  AยทBยทPยทEยทI ์ฒ˜๋Ÿผ ๊ธ€์ž ๋ชจ์–‘์„ ๊ทธ๋Œ€๋กœ ๋‹ด์€ ์ด๋ชจ์ง€๋ฅผ ์•ต์ปค๋กœ ์‚ผ์œผ๋ฉด ์ ˆ๋ฐ˜์ด ๋šซ๋ฆฌ๊ณ , ๋‚˜๋จธ์ง€๋Š” "emoji"์˜ ์‚ฌ์ „์  ์ •์˜๋ฌธ์ด๋ผ๋Š” ์˜์–ด ๋ฌธ๋งฅ์ด ๊ฐ•์ œ๋กœ ์ฑ„์›Œ ์ค€๋‹ค.

๋ฌธ์ œ: DreamHack โ€” emoji ๋ถ„๋ฅ˜: Misc ๋‚œ์ด๋„: ๐Ÿฅ‰ Bronze 3 FLAG: DH{anemojiisatypeofsymbolthatoriginatedfromatextmessageonamobilephoneinjapan...}

"์ด๋ชจ์ง€๋Š” ๋ฌด์—‡์„ ๋‚˜ํƒ€๋‚ด๋‚˜์š”?" ๋ฌธ์ œ ์„ค๋ช…์€ ์ด ํ•œ ๋ฌธ์žฅ๊ณผ ํžŒํŠธ ํ•˜๋‚˜(โ“œ๏ธ = m), ๊ทธ๋ฆฌ๊ณ  ํ”Œ๋ž˜๊ทธ ํ˜•์‹์ด DH{...}์ด๊ณ  DH๋ฅผ ๋บ€ ๋‚˜๋จธ์ง€๋Š” ์ „๋ถ€ ์†Œ๋ฌธ์ž๋ผ๋Š” ๊ทœ์น™์„ ์ค€๋‹ค. ๋ณธ๋ฌธ์€ 210์ž์— ๋‹ฌํ•˜๋Š” ์ด๋ชจ์ง€ ์—ด์ด๋‹ค.

๋ฌธ์ž๊ผด ์ด๋ชจ์ง€ ์•ต์ปค์™€ ์˜์–ด ๋ฌธ๋งฅ์œผ๋กœ ์ด๋ชจ์ง€ ๋‹จ์ผ์น˜ํ™˜์„ ๋ณต์›ํ•œ๋‹ค
๋ฌธ์ž๊ผด ์ด๋ชจ์ง€ ์•ต์ปค์™€ ์˜์–ด ๋ฌธ๋งฅ์œผ๋กœ ์ด๋ชจ์ง€ ๋‹จ์ผ์น˜ํ™˜์„ ๋ณต์›ํ•œ๋‹ค


๋ฌธ์ œ ๊ฐœ์š”

ํ•ญ๋ชฉ๋‚ด์šฉ
๋ฌธ์ œ๋ช…emoji
๋‚œ์ด๋„๐Ÿฅ‰ Bronze 3
๋ถ„๋ฅ˜Misc
์ œ๊ณต ํŒŒ์ผprob.txt (์ด๋ชจ์ง€ ์—ด + ํžŒํŠธ โ“œ๏ธ = m)
ํ•ต์‹ฌ ๊ธฐ๋ฒ•์ด๋ชจ์ง€ ๋‹จ์ผ์น˜ํ™˜ + ๋ฌธ์ž๊ผด ์•ต์ปค + ์˜์–ด ๋ฌธ๋งฅ ๋ณต์›

์ด๋ชจ์ง€๋ฅผ ์„ธ์–ด ๋ณด๋ฉด ์ •ํ™•ํžˆ 26์ข…์ด๋‹ค. 24๊ฐœ ์†Œ๋ฌธ์ž + { + }, ์ฆ‰ ์•ŒํŒŒ๋ฒณ ๋‹จ์ผ์น˜ํ™˜์ž„์„ ์•”์‹œํ•œ๋‹ค.



๐Ÿงฑ ๋ฐฐ๊ฒฝ โ€” ๋‹จ์ผ์น˜ํ™˜ ์•”ํ˜ธ

๋‹จ์ผ์น˜ํ™˜(monoalphabetic substitution)์€ ๊ฐ ๊ธ€์ž๋ฅผ ๋‹ค๋ฅธ ๊ณ ์ • ๊ธฐํ˜ธ๋กœ ์ผ๋Œ€์ผ ๋ฐ”๊พธ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๊ทธ "๊ธฐํ˜ธ"๊ฐ€ ์ด๋ชจ์ง€์ผ ๋ฟ, ๋ณธ์งˆ์€ ๋˜‘๊ฐ™๋‹ค. ํ‚ค ๊ณต๊ฐ„์€ ํฌ์ง€๋งŒ, ๊ธ€์ž์˜ ๋นˆ๋„์™€ ๋ฐ˜๋ณต ํŒจํ„ด์ด ๊ทธ๋Œ€๋กœ ๋ณด์กด๋˜๋ฏ€๋กœ ์•Œ๋ ค์ง„ ํ‰๋ฌธ ์กฐ๊ฐ๋งŒ ์žˆ์œผ๋ฉด ํ‘œ๊ฐ€ ์—ฐ์‡„์ ์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค.

๋‹จ์ผ์น˜ํ™˜ ์•”ํ˜ธ โ€” ๊ฐ ๊ธ€์ž๋ฅผ ๋‹ค๋ฅธ ๊ธฐํ˜ธ์— ์ผ๋Œ€์ผ ๋Œ€์‘์‹œํ‚จ๋‹ค
๋‹จ์ผ์น˜ํ™˜ ์•”ํ˜ธ โ€” ๊ฐ ๊ธ€์ž๋ฅผ ๋‹ค๋ฅธ ๊ธฐํ˜ธ์— ์ผ๋Œ€์ผ ๋Œ€์‘์‹œํ‚จ๋‹ค

์ถœ์ฒ˜: Wikimedia Commons, public domain

์ด ๋ฌธ์ œ์˜ ๊ฐ•๋ ฅํ•œ crib์€ ๋‘ ๊ฐ€์ง€๋‹ค. โ‘  ํžŒํŠธ โ“œ๏ธ = m, โ‘ก ํ”Œ๋ž˜๊ทธ ์ ‘๋‘์‚ฌ DH{๊ฐ€ โ†ฉ๏ธโ™“{์— ๋Œ€์‘ํ•œ๋‹ค๋Š” ๊ฒƒ. ์—ฌ๊ธฐ์— ๋”ํ•ด, ์–ด๋–ค ์ด๋ชจ์ง€๋“ค์€ ๊ธ€์ž ๋ชจ์–‘์„ ๊ทธ๋Œ€๋กœ ๋‹ด๊ณ  ์žˆ๋‹ค.


๐Ÿ”ฌ ์ •์ฐฐ โ€” ๊ธ€์ž๋ฅผ ํ’ˆ์€ ์ด๋ชจ์ง€๋“ค

์ด๋ชจ์ง€ ๋ชฉ๋ก์„ ์œ ๋‹ˆ์ฝ”๋“œ ์ด๋ฆ„์œผ๋กœ ๋ณด๋ฉด ์ ˆ๋ฐ˜์€ ์ •์ฒด๊ฐ€ ๋ป”ํ•˜๋‹ค.

์ด๋ชจ์ง€์œ ๋‹ˆ์ฝ”๋“œ ์ด๋ฆ„๋Œ€์‘
๐Ÿ…ฐ๏ธ ๐Ÿ…ฑ๏ธ ๐Ÿ…ฟ๏ธNEGATIVE SQUARED LATIN CAPITAL LETTER A/B/Pa, b, p
๐Ÿ“งE-MAIL SYMBOLe
โ„น๏ธINFORMATION SOURCEi
โญ•HEAVY LARGE CIRCLEo
ยฉ๏ธ ยฎ๏ธCOPYRIGHT / REGISTERED SIGNc, r
โŒCROSS MARKx
๐Ÿ—พSILHOUETTE OF JAPANj

์—ฌ๊ธฐ์— ํžŒํŠธ โ“œ๏ธ=m, ์ ‘๋‘์‚ฌ โ†ฉ๏ธ=d โ™“=h๋ฅผ ๋”ํ•˜๋ฉด 12์ž๊ฐ€ ์•ต์ปค๋กœ ํ™•๋ณด๋œ๋‹ค. ์ด๊ฑธ๋กœ ๋ถ€๋ถ„ ๋ณตํ˜ธ๋ฅผ ๋Œ๋ฆฌ๋ฉด ์ด๋ฏธ ๋ฌธ์žฅ์ด ๋ฐ˜์ฏค ์ฝํžŒ๋‹ค.

# recon.py โ€” ์•ต์ปค๋กœ ํ™•๋ณดํ•œ 12์ž๋งŒ ์ ์šฉํ•ด ๋ถ€๋ถ„ ๋ณตํ˜ธ
line=open("prob.txt",encoding="utf-8").read().splitlines()[0].strip()
toks=[];i=0
while i<len(line):
    ch=line[i]
    if ch in "{}": toks.append(ch); i+=1; continue
    t=ch;j=i+1
    while j<len(line) and line[j] in "๏ธโ€": t+=line[j];j+=1
    toks.append(t);i=j
# ๋ฌธ์ž๊ผด ์ด๋ชจ์ง€ ์•ต์ปค๋งŒ ์ ์šฉ (๋‚˜๋จธ์ง€๋Š” ยท ๋กœ ํ‘œ์‹œ)
A={'๐Ÿ…ฐ๏ธ':'a','๐Ÿ…ฑ๏ธ':'b','๐Ÿ…ฟ๏ธ':'p','โ“œ๏ธ':'m','๐Ÿ“ง':'e','โ„น๏ธ':'i','โŒ':'x','โญ•':'o','ยฉ๏ธ':'c','ยฎ๏ธ':'r','โ†ฉ๏ธ':'d','โ™“':'h'}
print("์•ต์ปค 10+2์ž๋งŒ ์ ์šฉํ•œ ๋ถ€๋ถ„ ๋ณตํ˜ธ:")
print("".join(t if t in "{}" else A.get(t,'ยท') for t in toks))
python3 recon.py

์•ต์ปค 12์ž๋งŒ ์ ์šฉํ•œ ๋ถ€๋ถ„ ๋ณตํ˜ธ โ€” ์˜์–ด ๋ฌธ์žฅ์ด ์ ˆ๋ฐ˜์ฏค ๋“œ๋Ÿฌ๋‚œ๋‹ค
์•ต์ปค 12์ž๋งŒ ์ ์šฉํ•œ ๋ถ€๋ถ„ ๋ณตํ˜ธ โ€” ์˜์–ด ๋ฌธ์žฅ์ด ์ ˆ๋ฐ˜์ฏค ๋“œ๋Ÿฌ๋‚œ๋‹ค

whichexpressmeaning, combiningcharacters ๊ฐ™์€ ์กฐ๊ฐ์ด ๋šœ๋ ทํ•˜๊ฒŒ ๋ณด์ธ๋‹ค. ์ด ๋ฌธ์žฅ์€ ๋‹ค๋ฆ„ ์•„๋‹Œ "emoji"์˜ ์‚ฌ์ „์  ์ •์˜๋‹ค.



๐Ÿ’ฃ ํ•ต์‹ฌ โ€” ์˜์–ด๊ฐ€ ๋‚˜๋จธ์ง€ 12์ž๋ฅผ ๊ฐ•์ œํ•œ๋‹ค

๋ถ€๋ถ„ ๋ณตํ˜ธ๋œ ๋ฌธ์žฅ์„ ์˜์–ด๋กœ ์ฝ์–ด ๋‚˜๊ฐ€๋ฉด ๋นˆ์นธ์˜ ๊ธ€์ž๊ฐ€ ์ €์ ˆ๋กœ ์ •ํ•ด์ง„๋‹ค.

โ€ฆ is a tยทpe of sยทmboยท   ->  "type of symbol"      => โœŒ๏ธ=y  ๐ŸŽ=f  ๐Ÿ‘ข=l
originated ยทrom โ€ฆ        ->  "from"                => (๐ŸŽ=f ์žฌํ™•์ธ)
oriยทinated / messaยทe     ->  "originated/message"  => โ›ฝ=g
japan ยทnยทiยทe emoticons   ->  "unlike"              => โ›Ž=u  ๐ŸŽ‹=k
ยทhich express            ->  "which"               => ๐Ÿ“ˆ=w
narratiยทe sยทstem         ->  "narrative system"    => โ™ˆ=v

๋นˆ์นธ ํ•˜๋‚˜๋ฅผ ์ฑ„์šธ ๋•Œ๋งˆ๋‹ค ๊ทธ ์ด๋ชจ์ง€๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ๋‹ค๋ฅธ ์œ„์น˜๋„ ํ•จ๊ป˜ ํ™•์ •๋˜๋ฏ€๋กœ, ๋ช‡ ๋‹จ์–ด๋งŒ ์ฝ์œผ๋ฉด 12๊ฐœ ๋ฏธ์ง€์ˆ˜๊ฐ€ ์ „๋ถ€ ํ’€๋ฆฐ๋‹ค. ์ตœ์ข… ๋Œ€์‘ํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๐Ÿ…ฐ๏ธa ๐Ÿ…ฑ๏ธb ๐Ÿ…ฟ๏ธp โ“œ๏ธm ๐Ÿ“งe โ„น๏ธi โŒx โญ•o ยฉ๏ธc ยฎ๏ธr โ†ฉ๏ธd โ™“h
๐Ÿ—พj โ™‘n ๐ŸŒดt โšกs โœŒ๏ธy ๐ŸŽf ๐Ÿ‘ขl โ›ฝg โ›Žu ๐ŸŽ‹k ๐Ÿ“ˆw โ™ˆv

๐ŸŽฏ ํ’€์ด โ€” ํ‘œ๋ฅผ ์„ธ์šฐ๊ณ  ์ด๋ชจ์ง€๋ฅผ ํ† ํฐํ™”

์ด๋ชจ์ง€๋Š” ์—ฌ๋Ÿฌ ์ฝ”๋“œํฌ์ธํŠธ๋กœ ์ด๋ค„์ง€๊ณ (์˜ˆ: ๐Ÿ…ฐ๏ธ = U+1F170 U+FE0F) variation selector๊ฐ€ ๋ถ™์œผ๋ฏ€๋กœ, ๋ฒ ์ด์Šค ๋ฌธ์ž + ๋’ค๋”ฐ๋ฅด๋Š” FE0F/ZWJ๋ฅผ ํ•˜๋‚˜์˜ ํ† ํฐ์œผ๋กœ ๋ฌถ์–ด ์ฒ˜๋ฆฌํ•œ๋‹ค.

# solve.py
line = open("prob.txt", encoding="utf-8").read().splitlines()[0].strip()
toks = []; i = 0
while i < len(line):
    ch = line[i]
    if ch in "{}": toks.append(ch); i += 1; continue
    t = ch; j = i + 1
    while j < len(line) and line[j] in "๏ธโ€":  # VS16 / ZWJ ํก์ˆ˜
        t += line[j]; j += 1
    toks.append(t); i = j
M = {'๐Ÿ…ฐ๏ธ':'a','๐Ÿ…ฑ๏ธ':'b','๐Ÿ…ฟ๏ธ':'p','โ“œ๏ธ':'m','๐Ÿ“ง':'e','โ„น๏ธ':'i','โŒ':'x','โญ•':'o','ยฉ๏ธ':'c','ยฎ๏ธ':'r',
     'โ†ฉ๏ธ':'d','โ™“':'h','๐Ÿ—พ':'j','โ™‘':'n','๐ŸŒด':'t','โšก':'s','โœŒ๏ธ':'y','๐ŸŽ':'f','๐Ÿ‘ข':'l','โ›ฝ':'g',
     'โ›Ž':'u','๐ŸŽ‹':'k','๐Ÿ“ˆ':'w','โ™ˆ':'v'}
body = "".join(t if t in "{}" else M[t] for t in toks)
inside = body[body.index("{") + 1: body.index("}")]
print("FLAG: DH{" + inside + "}")             # DH ๋งŒ ๋Œ€๋ฌธ์ž, ๋‚˜๋จธ์ง€ ์†Œ๋ฌธ์ž

solve.py ์‹คํ–‰ ํ™”๋ฉด โ€” ์ด๋ชจ์ง€ ์น˜ํ™˜ํ‘œ๋กœ ํ•œ ์ค„์งœ๋ฆฌ ์ด๋ชจ์ง€ ๋ฌธ์ž์—ด์„ ํ†ต์งธ๋กœ ๋ณต์›ํ•ด, ๊ณต๋ฐฑ ์—†์ด ์ด์–ด์ง„ ์˜๋ฌธ ์†Œ๋ฌธ์ž ํ•œ ๋ฉ์–ด๋ฆฌ์˜ ์ „์ฒด ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‘ ์ค„์— ๊ฑธ์ณ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋œ๋‹ค
solve.py ์‹คํ–‰ ํ™”๋ฉด โ€” ์ด๋ชจ์ง€ ์น˜ํ™˜ํ‘œ๋กœ ํ•œ ์ค„์งœ๋ฆฌ ์ด๋ชจ์ง€ ๋ฌธ์ž์—ด์„ ํ†ต์งธ๋กœ ๋ณต์›ํ•ด, ๊ณต๋ฐฑ ์—†์ด ์ด์–ด์ง„ ์˜๋ฌธ ์†Œ๋ฌธ์ž ํ•œ ๋ฉ์–ด๋ฆฌ์˜ ์ „์ฒด ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‘ ์ค„์— ๊ฑธ์ณ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋œ๋‹ค

๋ณต์›๋œ ๋ฌธ์žฅ์€ "an emoji is a type of symbol that originated from a text message on a mobile phone in japan, unlike emoticons which express meaning by combining characters used in a typical narrative system, it features the use of a single picture as a literal translation" โ€” ์ด๋ชจ์ง€์˜ ์ •์˜ ๊ทธ ์ž์ฒด๋‹ค. ํ”Œ๋ž˜๊ทธ๋Š” ์ด ๋ฌธ์žฅ์„ ๊ณต๋ฐฑ ์—†์ด ์ด์–ด ๋ถ™์ธ ๋’ค DH{ }๋กœ ๊ฐ์‹ผ ๊ฒƒ์ด๋‹ค.

FLAG: DH{anemojiisatypeofsymbolthatoriginatedfromatextmessageonamobilephoneinjapan...asaliteraltranslation}



๐Ÿ“ ๊ฒฐ๋ก 

๊ธฐํ˜ธ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ๋‹จ์ผ์น˜ํ™˜์€ ํŒจํ„ด์„ ๋ชป ์ˆจ๊ธด๋‹ค.

์•ŒํŒŒ๋ฒณ์„ ์ด๋ชจ์ง€๋กœ ๋ฐ”๊ฟ”๋„ ๊ธ€์ž์˜ ๋นˆ๋„์™€ ๋ฐ˜๋ณต์€ ๊ทธ๋Œ€๋กœ ๋‚จ๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ์•ต์ปค ๋ช‡ ๊ฐœ๋งŒ ์žก์œผ๋ฉด ํ‘œ๊ฐ€ ๋„๋ฏธ๋…ธ์ฒ˜๋Ÿผ ์ฑ„์›Œ์ง„๋‹ค. "์ด๋ชจ์ง€ ์•”ํ˜ธ"๋ผ๋Š” ํ™”๋ คํ•œ ๊ฒ‰๋ชจ์Šต์— ๊ฒ๋จน์„ ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค.

ํ‰๋ฌธ์˜ ์ •์ฒด๋ฅผ ์•Œ๋ฉด ๋ฏธ์ง€์ˆ˜๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.

์ ˆ๋ฐ˜์ฏค ๋ณตํ˜ธ๋œ ์ˆœ๊ฐ„ "์ด๊ฑด emoji์˜ ์‚ฌ์ „์  ์ •์˜๋ฌธ"์ด๋ผ๋Š” ๊ฑธ ์•Œ์•„์ฑˆ ๊ฒŒ ๊ฒฐ์ •์ ์ด์—ˆ๋‹ค. ๊ทธ ๋’ค๋กœ๋Š” ์˜์–ด ๋ฌธ๋ฒ•์ด ๋‚จ์€ 12์ž๋ฅผ ๊ฐ•์ œ๋กœ ์ฑ„์› ๋‹ค. ์•”ํ˜ธ ํ•ด๋…์—์„œ ํ‰๋ฌธ์ด ๋ฌด์—‡์ธ์ง€ ์ถ”์ธกํ•˜๋Š” ๋Šฅ๋ ฅ์€ ์ข…์ข… ํ‚ค๋ฅผ ์•„๋Š” ๊ฒƒ๋งŒํผ ๊ฐ•๋ ฅํ•˜๋‹ค.

์ด ๊ธ€์ด ๋„์›€์ด ๋๋‚˜์š”?

Comments

๋Œ“๊ธ€

0๊ฐœ

๋Œ“๊ธ€์„ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ด์š”. (๋„ค์ด๋ฒ„ ยท ๊ตฌ๊ธ€ ๊ณ„์ •)

๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘โ€ฆ

Related

๊ด€๋ จ ๊ธ€

3๊ฐœ
[๐Ÿฅ‰ Bronze 3] ๋กœ๋งˆ์ž ์ผ๋ณธ์–ด๋ฅผ ๋‹จ์ผ์น˜ํ™˜์œผ๋กœ ๊ฐ€๋ฆฐ ๋งค์นญ ํผ์ฆ โ€” DreamHack Easy Linguistics ํ’€์ด
blog

[๐Ÿฅ‰ Bronze 3] ๋กœ๋งˆ์ž ์ผ๋ณธ์–ด๋ฅผ ๋‹จ์ผ์น˜ํ™˜์œผ๋กœ ๊ฐ€๋ฆฐ ๋งค์นญ ํผ์ฆ โ€” DreamHack Easy Linguistics ํ’€์ด

์ผ๋ณธ์–ด ๋ช…์‚ฌ๋ฅผ ๋กœ๋งˆ์ž๋กœ ์ ์€ ๋’ค ๋‹จ์ผ์น˜ํ™˜์œผ๋กœ ์•”ํ˜ธํ™”ํ•œ ์—ฌ์„ฏ ๋‹จ์–ด๋ฅผ, ๊ฐ๊ฐ์˜ ๋œป์— ์ง์ง“๋Š” ์–ธ์–ดํ•™ ํผ์ฆ. ๋‘ ๋‹จ์–ด๊ฐ€ ๊ณต์œ ํ•˜๋Š” ์ ‘๋ฏธ์‚ฌ๋ฅผ ์•ต์ปค๋กœ ์‚ผ์•„ ์น˜ํ™˜ํ‘œ๋ฅผ ์„ธ์šฐ๋ฉด yoasobiยทyokazeยทyamiyo ๊ฐ™์€ ์›๋ž˜ ๋‹จ์–ด๊ฐ€ ๋ณต์›๋œ๋‹ค. ์ฒ˜์Œ์—” ๊ธ€์ž ๋‘ ๊ฐœ๊ฐ€ ๋นˆ์นธ์œผ๋กœ ๋‚จ์•˜์ง€๋งŒ, ๋‚˜๋จธ์ง€ ๋Œ€์‘์„ ์ฑ„์šฐ์ž ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๊นŒ์ง€ tobihi(้ฃ›ใณ็ซ, ํŠ€๋Š” ๋ถˆํ‹ฐ)๋ผ๋Š” ์ง„์งœ ์ผ๋ณธ์–ด ๋‹จ์–ด๋กœ ๋”ฑ ๋–จ์–ด์กŒ๋‹ค. ๋งž์ถ˜ ์ˆœ์„œ๊ฐ€ ๊ณง ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋œ๋‹ค.
#dreamhack#ctf#misc+3
2026-07-14#dreamhack +4
[๐Ÿฅ‰ Bronze 4] ๋ฐ˜ํˆฌ๋ช… ๋ง์น ์€ ์ง€์šฐ๊ฐœ๊ฐ€ ์•„๋‹ˆ๋‹ค โ€” DreamHack QR Code ํ’€์ด
blog

[๐Ÿฅ‰ Bronze 4] ๋ฐ˜ํˆฌ๋ช… ๋ง์น ์€ ์ง€์šฐ๊ฐœ๊ฐ€ ์•„๋‹ˆ๋‹ค โ€” DreamHack QR Code ํ’€์ด

QR ์ฝ”๋“œ ์œ„์— ๊ฒ€์€ ๋‚™์„œ๊ฐ€ ๋ฎ์—ฌ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ”ฝ์…€๊ฐ’์ด ์—ด ์ข…๋ฅ˜๋ฐ–์— ์—†๊ณ  255, 63, 16, 4, 1 ์ด๋ผ๋Š” ๋“ฑ๋น„ ์‚ฌ์Šฌ์„ ์ด๋ฃฌ๋‹ค. ์•ŒํŒŒ 75% ๊ฒ€์ •์„ ๊ฒน์น  ๋•Œ๋งˆ๋‹ค ๋ฐ‘์˜ ๋ฐ๊ธฐ๊ฐ€ 1/4 ์”ฉ๋งŒ ๋‚จ์€ ํ”์ ์ด๋‹ค. "ํ”ฝ์…€๊ฐ’์ด 0๋ณด๋‹ค ํฌ๋ฉด ํฐ ๋ชจ๋“ˆ" ํ•œ ์ค„๋กœ 29x29 ๊ฒฉ์ž๋ฅผ ๋˜์‚ด๋ฆฌ๊ณ , ์žฌ์ธ์ฝ”๋”ฉ๋ณธ๊ณผ 841์นธ ์ „์ˆ˜ ๋Œ€์กฐ๊นŒ์ง€ ํ–ˆ๋‹ค.
#dreamhack#ctf#misc+5
2026-08-22#dreamhack +3
[๐Ÿฅ‰ Bronze 2] ์‹ ์Œ์†Œ๋ฆฌ 13๊ธ€์ž๋กœ ์ง  ํ”„๋กœ๊ทธ๋žจ์—์„œ Base45 ํ”Œ๋ž˜๊ทธ ๊บผ๋‚ด๊ธฐ โ€” DreamHack ์–ด ํ˜•์ด์•ผ ํ’€์ด
blog

[๐Ÿฅ‰ Bronze 2] ์‹ ์Œ์†Œ๋ฆฌ 13๊ธ€์ž๋กœ ์ง  ํ”„๋กœ๊ทธ๋žจ์—์„œ Base45 ํ”Œ๋ž˜๊ทธ ๊บผ๋‚ด๊ธฐ โ€” DreamHack ์–ด ํ˜•์ด์•ผ ํ’€์ด

๋ฐฐํฌ๋ณธ์€ ํ™•์žฅ์ž๊ฐ€ .bro ์ธ 22KB ์งœ๋ฆฌ ํ…์ŠคํŠธ ํ•˜๋‚˜๋‹ค. ๋“ฑ์žฅํ•˜๋Š” ๊ธ€์ž๊ฐ€ ๋งˆ์นจํ‘œ๊นŒ์ง€ ํ•ฉ์ณ ์—ด์„ธ ์ข…๋ฅ˜๋ฟ์ด๋ผ ๋‚œํ•ดํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด "ํ˜€์—‰..." ์†Œ์Šค๋ผ๋Š” ๊ฒŒ ๊ธˆ๋ฐฉ ๋“œ๋Ÿฌ๋‚œ๋‹ค. ๋ช…์„ธ๋Œ€๋กœ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์งœ์„œ ๋Œ๋ฆฌ๋ฉด ์˜๋ฌธ ์•ˆ๋‚ด๋ฌธ์ด ๋‚˜์˜ค๊ณ , ๊ทธ ์•ˆ์— ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์ธ 26๊ธ€์ž๊ฐ€ ํ•˜๋‚˜ ๋ฐ•ํ˜€ ์žˆ๋‹ค. ๋ฌธ์ œ ์„ค๋ช…์ด ๋งํ•œ "45์‚ด" ์€ ์‹œ์ € 45๊ฐ€ ์•„๋‹ˆ๋ผ Base45 ์˜€๋‹ค.
#dreamhack#ctf#misc+7
2026-08-20#dreamhack +3