[๐ŸŒฑ ์ƒˆ์‹น] cmp ๋ช…๋ น์–ด ํ•˜๋‚˜๊ฐ€ ๊ณง ํ”Œ๋ž˜๊ทธ โ€” DreamHack Simple Crack Me ํ’€์ด

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

[๐ŸŒฑ ์ƒˆ์‹น] cmp ๋ช…๋ น์–ด ํ•˜๋‚˜๊ฐ€ ๊ณง ํ”Œ๋ž˜๊ทธ โ€” DreamHack Simple Crack Me ํ’€์ด

์ •์  ๋งํฌยทstrip๋œ ELF ํ•œ ๊ฐœ. scanf๋กœ ์ •์ˆ˜ ํ•˜๋‚˜๋ฅผ ๋ฐ›์•„ ์ƒ์ˆ˜์™€ ๋น„๊ตํ•˜๋Š” ๊ฒŒ ๋กœ์ง์˜ ์ „๋ถ€๋‹ค. objdump๋กœ main์„ ๊นŒ๋ฉด cmp eax,0x13371337 ํ•œ ์ค„์ด ๊ณง๋ฐ”๋กœ ๋‚˜์˜จ๋‹ค โ€” ๊ทธ 16์ง„์ˆ˜๋ฅผ 10์ง„์ˆ˜๋กœ ๋ฐ”๊ฟ” DH{}๋กœ ๊ฐ์‹ธ๋ฉด ํ”Œ๋ž˜๊ทธ. gdb๋กœ ๊ทธ ๋น„๊ต๊ฐ€ ์‹คํ–‰ ์‹œ์ ์— ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์ผ์–ด๋‚˜๋Š”์ง€๊นŒ์ง€ ํ™•์ธํ–ˆ๋‹ค.

๋ฌธ์ œ: DreamHack โ€” Simple Crack Me ๋ถ„๋ฅ˜: Reversing ๋‚œ์ด๋„: ๐ŸŒฑ ์ƒˆ์‹น (Sprout) FLAG: DH{322376503}

๋ฌธ์ œ ์„ค๋ช…์ด ์นœ์ ˆํ•˜๋‹ค. "์ˆซ์ž๋ฅผ ๋ฐ›์•„ ์ •ํ•ด์ง„ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฒ€์ฆํ•ด correct ๋˜๋Š” wrong์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ"์ด๊ณ , "correct๋ฅผ ์ถœ๋ ฅํ•˜๋Š” 10์ง„์ˆ˜ ์–‘์ˆ˜ ๊ฐ’"์„ ์ฐพ์œผ๋ฉด ๊ทธ ๊ฐ’์„ DH{}๋กœ ๊ฐ์‹ผ ๊ฒŒ ํ”Œ๋ž˜๊ทธ๋ž€๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ํ•˜๋‚˜, ํŒŒ์ผ ํ•˜๋‚˜, ์กฐ๊ฑด ํ•˜๋‚˜. ๋ฆฌ๋ฒ„์‹ฑ ์ž…๋ฌธ ๋ฌธ์ œ๋‹ต๊ฒŒ ๋กœ์ง๋„ ์ •ํ™•ํžˆ ๊ทธ๋งŒํผ๋งŒ ์žˆ๋‹ค.


๐Ÿ”ฌ ์ •์ฐฐ

simple_crack_me: ELF 64-bit LSB executable, x86-64, statically linked, ... stripped

file ๊ณผ checksec ๋ฅผ ์ด์–ด ๋Œ๋ฆฐ ํ™”๋ฉด โ€” ์ •์  ๋งํฌ์— ์‹ฌ๋ณผ์ด ์ง€์›Œ์ง„ 64๋น„ํŠธ ELF ์ด๊ณ , ์นด๋‚˜๋ฆฌ๊ฐ€ ์—†์œผ๋ฉฐ PIE ๋„ ๊บผ์ ธ ์žˆ์–ด ์ฃผ์†Œ๊ฐ€ 0x400000 ์— ๊ณ ์ •๋œ๋‹ค๋Š” ๊ฒƒ์ด ํ™•์ธ๋œ๋‹ค
file ๊ณผ checksec ๋ฅผ ์ด์–ด ๋Œ๋ฆฐ ํ™”๋ฉด โ€” ์ •์  ๋งํฌ์— ์‹ฌ๋ณผ์ด ์ง€์›Œ์ง„ 64๋น„ํŠธ ELF ์ด๊ณ , ์นด๋‚˜๋ฆฌ๊ฐ€ ์—†์œผ๋ฉฐ PIE ๋„ ๊บผ์ ธ ์žˆ์–ด ์ฃผ์†Œ๊ฐ€ 0x400000 ์— ๊ณ ์ •๋œ๋‹ค๋Š” ๊ฒƒ์ด ํ™•์ธ๋œ๋‹ค

์ •์  ๋งํฌ + strip์ด๋ผ ์‹ฌ๋ณผ์€ ์—†์ง€๋งŒ, PIE๊ฐ€ ๊บผ์ ธ ์žˆ๋‹ค๋Š” ๊ฒŒ ์ค‘์š”ํ•˜๋‹ค(No PIE (0x400000)). ์ฃผ์†Œ๊ฐ€ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์ ํžŒ ๊ทธ๋Œ€๋กœ ๊ณ ์ •๋œ๋‹ค๋Š” ๋œป์ด๋‹ค. ๋””์Šค์–ด์…ˆ๋ธ”์—์„œ ๋ณธ ์ฃผ์†Œ๋ฅผ gdb์—์„œ๋„, ํŒŒ์ผ ์˜คํ”„์…‹ ๊ณ„์‚ฐ์—์„œ๋„ ๊ทธ๋Œ€๋กœ ๋ฏฟ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ’ฃ ํ•ต์‹ฌ โ€” main์„ ๊นŒ๋ฉด ๋น„๊ต ์ƒ์ˆ˜๊ฐ€ ๋ฐ”๋กœ ๋ณด์ธ๋‹ค

objdump -d๋กœ ์ง„์ž…์  ๊ทผ์ฒ˜๋ฅผ ๋ณด๋ฉด ๋กœ์ง ์ „์ฒด๊ฐ€ 30์ค„ ์•ˆ์— ๋‹ค ๋“ค์–ด ์žˆ๋‹ค. scanf๋กœ ์ •์ˆ˜ ํ•˜๋‚˜(%d)๋ฅผ ์ฝ๊ณ , ๊ทธ ๊ฐ’์„ ์ƒ์ˆ˜ ํ•˜๋‚˜์™€ ๋น„๊ตํ•˜๊ณ , ๋งž์œผ๋ฉด puts("Correct!"), ํ‹€๋ฆฌ๋ฉด ์ž…๋ ฅ๊ฐ’์„ %x๋กœ ๋˜๋Œ๋ ค์ฃผ๋ฉฐ wrong์„ ์ถœ๋ ฅํ•œ๋‹ค.

objdump ๊ฒฐ๊ณผ์— ์ฃผ์„์„ ๋ถ™์ธ main ๋””์Šค์–ด์…ˆ๋ธ” โ€” scanf ๋กœ ์ •์ˆ˜ ํ•˜๋‚˜๋ฅผ ์ฝ๊ณ  cmp ๋กœ ์ƒ์ˆ˜์™€ ๋น„๊ตํ•œ ๋‹ค์Œ, ๊ฐ™์œผ๋ฉด Correct ๋ฅผ ์ฐ๊ณ  ๋‹ค๋ฅด๋ฉด wrong ๊ฒฝ๋กœ๋กœ ์ ํ”„ํ•˜๋Š” ํ๋ฆ„์ด ๋ณด์ธ๋‹ค
objdump ๊ฒฐ๊ณผ์— ์ฃผ์„์„ ๋ถ™์ธ main ๋””์Šค์–ด์…ˆ๋ธ” โ€” scanf ๋กœ ์ •์ˆ˜ ํ•˜๋‚˜๋ฅผ ์ฝ๊ณ  cmp ๋กœ ์ƒ์ˆ˜์™€ ๋น„๊ตํ•œ ๋‹ค์Œ, ๊ฐ™์œผ๋ฉด Correct ๋ฅผ ์ฐ๊ณ  ๋‹ค๋ฅด๋ฉด wrong ๊ฒฝ๋กœ๋กœ ์ ํ”„ํ•˜๋Š” ํ๋ฆ„์ด ๋ณด์ธ๋‹ค

ํ•ต์‹ฌ์€ ์ด ๋‘ ์ค„์ด๋‹ค.

401b12:  mov eax,[rbp-0xc]      ; ๋ฐฉ๊ธˆ scanf๋กœ ๋ฐ›์€ ์ž…๋ ฅ๊ฐ’
401b15:  cmp eax,0x13371337     ; ์ด ์ƒ์ˆ˜์™€ ๊ฐ™์•„์•ผ ํ†ต๊ณผ
401b1a:  jne 0x401b32           ; ๋‹ค๋ฅด๋ฉด "wrong" ๊ฒฝ๋กœ๋กœ ์ ํ”„

๋ธŒ๋ฃจํŠธํฌ์Šค๋„, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ญ์‚ฐ๋„ ํ•„์š” ์—†๋‹ค. ๋น„๊ต ๋Œ€์ƒ ์ƒ์ˆ˜๊ฐ€ ๋ช…๋ น์–ด ์ธ์ฝ”๋”ฉ ์•ˆ์— ๊ทธ๋Œ€๋กœ ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋ฐ•ํ˜€ ์žˆ๋‹ค. cmp eax, imm32๋Š” ์˜คํผ๋žœ๋“œ๊ฐ€ ์ฝ”๋“œ ์ž์ฒด์— ์ƒˆ๊ฒจ์ง€๋Š” ๋ช…๋ น์–ด๋ผ, ์•„๋ฌด๋ฆฌ ์‹ฌ๋ณผ์„ ์ง€์šฐ๊ณ  ์ •์  ๋งํฌ๋กœ ๋ญ‰์ณ๋†”๋„ ์ด ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’๋งŒ์€ ์ˆจ๊ธธ ์ˆ˜๊ฐ€ ์—†๋‹ค. 0x13371337์„ 10์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋ฉด 322376503 โ€” ์ด๊ฒŒ ์ •๋‹ต์ด์ž ํ”Œ๋ž˜๊ทธ ์•Œ๋งน์ด๋‹ค.

gdb๋กœ ์‹คํ–‰ ์‹œ์ ์— ๋‹ค์‹œ ํ™•์ธ

์ •์  ๋ถ„์„๋งŒ์œผ๋กœ ๋๋‚ด์ง€ ์•Š๊ณ , ๊ทธ ๋น„๊ต๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰๋  ๋•Œ ๋ ˆ์ง€์Šคํ„ฐ์— ๋ญ๊ฐ€ ๋“ค์–ด์žˆ๋Š”์ง€ gdb๋กœ ์ง์ ‘ ๋ฉˆ์ถฐ์„œ ๋ดค๋‹ค. cmp ๋ช…๋ น์–ด ์ฃผ์†Œ(0x401b15)์— ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋ฅผ ๊ฑธ๊ณ  ์ •๋‹ต์„ ํ‘œ์ค€์ž…๋ ฅ์œผ๋กœ ํ˜๋ ค๋ณด๋‚ธ ๋’ค eax๋ฅผ ํ™•์ธํ•œ๋‹ค.

break *0x401b15
run < input.txt      # input.txt = "322376503"
printf "eax(์ž…๋ ฅ๊ฐ’) = 0x%x\n", $eax

gdb โ€” ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ์—์„œ eax๊ฐ€ ๋ชฉํ‘œ ์ƒ์ˆ˜ 0x13371337๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•จ์„ ํ™•์ธ, ์ด์–ด์„œ Correct! ์ถœ๋ ฅ
gdb โ€” ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ์—์„œ eax๊ฐ€ ๋ชฉํ‘œ ์ƒ์ˆ˜ 0x13371337๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•จ์„ ํ™•์ธ, ์ด์–ด์„œ Correct! ์ถœ๋ ฅ

eax๊ฐ€ 0x13371337๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๊ณ , continueํ•˜๋ฉด ๋ฐ”๋กœ Correct!๊ฐ€ ์ฐํžŒ๋‹ค. ์ •์  ๋ถ„์„(objdump)๊ณผ ๋™์  ํ™•์ธ(gdb)์ด ๊ฐ™์€ ๊ฒฐ๋ก ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.


๐ŸŽฏ ํ’€์ด โ€” ๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ ์ƒ์ˆ˜ ํ•˜๋‚˜ ๋ฝ‘์•„๋‚ด๊ธฐ

๋””์Šค์–ด์…ˆ๋ธ”ํ•  ํ•„์š”๋„ ์—†์ด, cmp eax,imm32์˜ ์ธ์ฝ”๋”ฉ(3D + 4๋ฐ”์ดํŠธ ๋ฆฌํ‹€์—”๋””์–ธ ์ƒ์ˆ˜)์„ ์•Œ๊ณ  ์žˆ์œผ๋‹ˆ ํŒŒ์ผ์—์„œ ๊ทธ 5๋ฐ”์ดํŠธ๋งŒ ์ง์ ‘ ์ฝ์–ด๋„ ๋œ๋‹ค. non-PIE๋ผ ๊ฐ€์ƒ์ฃผ์†Œ์—์„œ 0x400000๋งŒ ๋นผ๋ฉด ํŒŒ์ผ ์˜คํ”„์…‹์ด ๋‚˜์˜จ๋‹ค.

import struct
 
data = open("extracted/simple_crack_me", "rb").read()
 
CMP_VADDR = 0x401b15          # cmp eax, imm32 (opcode 3d + imm32 LE)
off = CMP_VADDR - 0x400000    # non-PIE: file offset = vaddr - 0x400000
 
opcode, imm = data[off], struct.unpack_from("<I", data, off + 1)[0]
assert opcode == 0x3D, "expected cmp eax,imm32 opcode"
 
print(f"target constant = 0x{imm:x} = {imm}")
print(f"FLAG: DH{{{imm}}}")

์‹คํ–‰ ๊ฒฐ๊ณผ์™€, ์‹ค์ œ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๊ทธ ๊ฐ’์„ ๋„ฃ์–ด Correct!๊ฐ€ ๋œจ๋Š” ๊ฒƒ๊นŒ์ง€ ํ•œ ํ™”๋ฉด์—์„œ ํ™•์ธ๋œ๋‹ค.

solve.py ์†Œ์Šค์™€ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ด์–ด ์ฐ์€ ํ™”๋ฉด โ€” ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์—์„œ cmp ์ƒ์ˆ˜๋ฅผ ์ง์ ‘ ์ฝ์–ด 10์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๊ณ , ๊ทธ ๊ฐ’์„ ์‹ค์ œ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋„ฃ์œผ๋‹ˆ Correct ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค
solve.py ์†Œ์Šค์™€ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ด์–ด ์ฐ์€ ํ™”๋ฉด โ€” ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์—์„œ cmp ์ƒ์ˆ˜๋ฅผ ์ง์ ‘ ์ฝ์–ด 10์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๊ณ , ๊ทธ ๊ฐ’์„ ์‹ค์ œ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋„ฃ์œผ๋‹ˆ Correct ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค

target constant = 0x13371337 = 322376503
FLAG: DH{322376503}

๐Ÿ“ ๊ฒฐ๋ก 

์ด ๋ฌธ์ œ๊ฐ€ ๋ณด์—ฌ์ฃผ๋Š” ๊ฑด ๋‹จ์ˆœํ•˜์ง€๋งŒ ๋ฆฌ๋ฒ„์‹ฑ์˜ ๊ธฐ๋ณธ๊ธฐ๋‹ค โ€” ๋น„๊ต ๋ช…๋ น์–ด์˜ ์˜คํผ๋žœ๋“œ๋Š” ์ฝ”๋“œ ์ž์ฒด์— ์ƒˆ๊ฒจ์ง€๋Š” ๋ฐ์ดํ„ฐ๋ผ, strip์ด๋‚˜ ์ •์  ๋งํฌ๋กœ๋Š” ์ ˆ๋Œ€ ๊ฐ€๋ ค์ง€์ง€ ์•Š๋Š”๋‹ค. ์‹ฌ๋ณผ ์ด๋ฆ„์€ ์ง€์šธ ์ˆ˜ ์žˆ์–ด๋„ cmp eax, 0x13371337 ๊ฐ™์€ ๋ฆฌํ„ฐ๋Ÿด ๋น„๊ต๊ฐ’์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์—ฌ๋Š” ์ˆœ๊ฐ„ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋œ๋‹ค. ์‹ค์ œ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋ผ์ด์„ ์Šค ํ‚ค๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ด๋Ÿฐ ์‹์˜ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์ƒ์ˆ˜ ๋น„๊ต๋กœ ์ง€ํ‚ค๋ฉด, ์ •์  ๋ถ„์„ ํ•œ ๋ฒˆ์— ๋šซ๋ฆฐ๋‹ค๋Š” ๋œป์ด๊ธฐ๋„ ํ•˜๋‹ค. ์ง„์งœ ๋น„๋ฐ€์€ ์ฝ”๋“œ์— ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋„ฃ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์„œ๋ฒ„ ๊ฒ€์ฆ์ด๋‚˜ ํ•ด์‹œ ๋น„๊ต์ฒ˜๋Ÿผ ์—ญ์‚ฐ์ด ์–ด๋ ค์šด ๋ฐฉ์‹์œผ๋กœ ์ง€์ผœ์•ผ ํ•œ๋‹ค.

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

Comments

๋Œ“๊ธ€

0๊ฐœ

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

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

Related

๊ด€๋ จ ๊ธ€

3๊ฐœ
[๐Ÿฅ‡ Gold 4] ์ง€๊ทธ์žฌ๊ทธ๋กœ ์ ‘ํžŒ ํ”Œ๋ž˜๊ทธ โ€” DreamHack quilt ํ’€์ด
blog

[๐Ÿฅ‡ Gold 4] ์ง€๊ทธ์žฌ๊ทธ๋กœ ์ ‘ํžŒ ํ”Œ๋ž˜๊ทธ โ€” DreamHack quilt ํ’€์ด

๋ฐฐํฌ๋œ quilt๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹ˆ๋ผ ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ๊ตฝ๋Š” ์ธ์ฝ”๋”์˜€๋‹ค. /dev/urandom 192๋ฐ”์ดํŠธ ํ•œ๋ณตํŒ์— ์ธ์ž๋ฅผ ๊ทธ๋Œ€๋กœ ์–น๊ณ , 6๋น„ํŠธ์”ฉ ์ž˜๋ผ 64์ƒ‰ ํŒ”๋ ˆํŠธ๋กœ 32ร—32 ๋ธ”๋ก์„ ์น ํ•œ๋‹ค. ๋˜๋Œ๋ฆฌ๋Š” ๊ธธ๋ชฉ์— ๋†“์ธ ํ•จ์ •์€ ํ™€์ˆ˜ ๊ฒฉ์žํ–‰์„ ์ขŒ์šฐ๋กœ ๋’ค์ง‘๋Š” ํ•œ ์ค„์ด๋‹ค.
#dreamhack#ctf#reversing+4
2026-08-20#dreamhack +5
[๐Ÿฅˆ Silver 2] ํ•ดํ‚น๋‹นํ•œ VM ์ด๋ฏธ์ง€์—์„œ ์ฑ„๊ตด๊ธฐ๊ฐ€ ์‚ผํ‚จ ํ”Œ๋ž˜๊ทธ ๋˜์ฐพ๊ธฐ โ€” DreamHack Infested Terran ํ’€์ด
blog

[๐Ÿฅˆ Silver 2] ํ•ดํ‚น๋‹นํ•œ VM ์ด๋ฏธ์ง€์—์„œ ์ฑ„๊ตด๊ธฐ๊ฐ€ ์‚ผํ‚จ ํ”Œ๋ž˜๊ทธ ๋˜์ฐพ๊ธฐ โ€” DreamHack Infested Terran ํ’€์ด

bzImage + rootfs.ext2 ๋‘ ํŒŒ์ผ๋งŒ ์ฃผ๋Š” ๋ฌธ์ œ. ์ด๋ฏธ์ง€๋ฅผ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š๊ณ  ์—ด์–ด๋ณด๋ฉด buildroot ๋ฐ”์ด๋„ˆ๋ฆฌ๋“ค ์‚ฌ์ด์— glibc๋กœ ๋นŒ๋“œ๋œ ๋‘ ๊ฐœ๊ฐ€ ์„ž์—ฌ ์žˆ๋‹ค. /home/ubuntu/.helper๋Š” ํ‘œ์ค€์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ ๊ฐ’์„ argv[0]="[kworker]"๋กœ ์œ„์žฅํ•ด /usr/bin/sl์— ๋„˜๊ธฐ๊ณ , sl์€ ์ž…๋ ฅ 36๊ธ€์ž๋ฅผ ํž™์— ํฉ๋ฟŒ๋ฆฐ ๋’ค ๋ˆ„์ ํ•ฉ์„ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๊ฐ’๊ณผ ๋น„๊ตํ•œ๋‹ค. ๊ฒ€์ฆ์‹์ด ์‚ผ๊ฐํ–‰๋ ฌ์ด๋ผ ์ด์›ƒํ•œ ๋‘ ํ•ญ์„ ๋นผ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ํ•œ ๊ธ€์ž์”ฉ ๊ทธ๋Œ€๋กœ ๋ณต์›๋œ๋‹ค.
#dreamhack#ctf#reversing+7
2026-07-25#dreamhack +5
[๐Ÿฅ‰ Bronze 2] ๋ถ„๊ธฐ ๋ฏธ๋กœ ๋’ค์— ์ˆจ์€ ์ƒ์ˆ˜ ํ•œ ์ค„ โ€” DreamHack Labyrinth ํ’€์ด
blog

[๐Ÿฅ‰ Bronze 2] ๋ถ„๊ธฐ ๋ฏธ๋กœ ๋’ค์— ์ˆจ์€ ์ƒ์ˆ˜ ํ•œ ์ค„ โ€” DreamHack Labyrinth ํ’€์ด

14KB ์งœ๋ฆฌ stripped PIE ํ•˜๋‚˜๊ฐ€ ์ „๋ถ€์ธ ๋ฆฌ๋ฒ„์‹ฑ ๋ฌธ์ œ. ptrace ์•ˆํ‹ฐ๋””๋ฒ„๊น…๊ณผ ์‹œ๋“œ %7 ๋กœ ๊ฐˆ๋ผ์ง€๋Š” ๋ถ„๊ธฐ ๋ฏธ๋กœ๊ฐ€ ๊ฒน๊ฒน์ด ๊น”๋ ค ์žˆ์ง€๋งŒ, ์ •๋‹ต ์ž…๋ ฅ์€ .rodata ์˜ 32๋ฐ”์ดํŠธ๋ฅผ 0x30 ์œผ๋กœ XOR ํ•œ ๊ฒƒ์ด ์ „๋ถ€์˜€๋‹ค. flag ์ƒ์„ฑ๊ธฐ๊นŒ์ง€ ํŒŒ์ด์ฌ์œผ๋กœ ์žฌ๊ตฌํ˜„ํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ ์ถœ๋ ฅ๊ณผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๋Œ€์กฐํ–ˆ๋‹ค.
#dreamhack#ctf#reversing+6
2026-08-20#dreamhack +5