[๐Ÿฅ‰ Bronze 4] ๋งŒ๋“ค์–ด ๋†“๊ณ  ๋ฒ„๋ฆฐ ๋ฐ˜ํ™˜๊ฐ’์—์„œ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‚š์•„์ฑ„๋‹ค โ€” DreamHack Check Return Value ํ’€์ด

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

[๐Ÿฅ‰ Bronze 4] ๋งŒ๋“ค์–ด ๋†“๊ณ  ๋ฒ„๋ฆฐ ๋ฐ˜ํ™˜๊ฐ’์—์„œ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‚š์•„์ฑ„๋‹ค โ€” DreamHack Check Return Value ํ’€์ด

main์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ฒ„ํผ์— ์กฐ๋ฆฝํ•ด ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ, ๊ทธ ๋ฐ˜ํ™˜๊ฐ’์„ ์“ฐ์ง€ ์•Š๊ณ  ๊ณง๋ฐ”๋กœ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๋ฎ์–ด์จ ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š” ๋ฆฌ๋ฒ„์‹ฑ ๋ฌธ์ œ. ๋ฐ˜ํ™˜๊ฐ’์„ ๋ฎ์–ด์“ฐ๊ธฐ ์ง์ „ ์ง€์ ์— gdb ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋ฅผ ๊ฑธ๊ณ  $rax๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ฝ์œผ๋ฉด ํ”Œ๋ž˜๊ทธ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚˜์˜จ๋‹ค.

๋ฌธ์ œ: DreamHack โ€” Check Return Value ๋ถ„๋ฅ˜: Reversing ๋‚œ์ด๋„: ๐Ÿฅ‰ Bronze 4 FLAG: DH{0e82b5c5082e44a74dbb6d05e91387ee}

๋ฌธ์ œ ์ด๋ฆ„์ด ๊ณง ํžŒํŠธ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜(return) ํ•˜๋Š”๋ฐ, main์€ ๊ทธ ๋ฐ˜ํ™˜๊ฐ’์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ฒ„๋ฆฐ๋‹ค. ๊ทธ๋ž˜์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์•„๋ฌด๋ฆฌ ์‹คํ–‰ํ•ด๋„ "ํ”Œ๋ž˜๊ทธ๋ฅผ ๋Œ๋ ค์คฌ๋‹ค"๋Š” ๋ฉ”์‹œ์ง€๋งŒ ๋‚˜์˜ค๊ณ  ์ •์ž‘ ํ”Œ๋ž˜๊ทธ๋Š” ํ™”๋ฉด์— ์ฐํžˆ์ง€ ์•Š๋Š”๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ผ์€ ๊ทธ ๋ฒ„๋ ค์ง€๋Š” ๋ฐ˜ํ™˜๊ฐ’์„ ์ค‘๊ฐ„์— ๋‚š์•„์ฑ„๋Š” ๊ฒƒ์ด๋‹ค.

main์€ ํ”Œ๋ž˜๊ทธ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜๋ฐ›์ž๋งˆ์ž ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๋ฎ์–ด์จ ๋ฒ„๋ฆฐ๋‹ค โ€” ๋ฎ์–ด์“ฐ๊ธฐ ์ง์ „ gdb๋กœ $rax๋ฅผ ์ฝ๋Š”๋‹ค
main์€ ํ”Œ๋ž˜๊ทธ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜๋ฐ›์ž๋งˆ์ž ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๋ฎ์–ด์จ ๋ฒ„๋ฆฐ๋‹ค โ€” ๋ฎ์–ด์“ฐ๊ธฐ ์ง์ „ gdb๋กœ $rax๋ฅผ ์ฝ๋Š”๋‹ค

๋ฌธ์ œ ๊ฐœ์š”

ํ•ญ๋ชฉ๋‚ด์šฉ
๋ฌธ์ œ๋ช…Check Return Value
๋‚œ์ด๋„๐Ÿฅ‰ Bronze 4
๋ถ„๋ฅ˜Reversing (x86-64 ELF)
์ œ๊ณต ํŒŒ์ผcheck_return_value (64-bit, stripped, non-PIE)
ํ•ต์‹ฌ ๊ธฐ๋ฒ•๋ฒ„๋ ค์ง€๋Š” ํ•จ์ˆ˜ ๋ฐ˜ํ™˜๊ฐ’(rax)์„ gdb ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋กœ ํšŒ์ˆ˜

ํ’€์ด ํ๋ฆ„์€ ์„ธ ๊ฑธ์Œ์ด๋‹ค. ์‹คํ–‰ํ•ด๋„ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์•ˆ ๋‚˜์˜ค๋Š” ๊ฑธ ํ™•์ธํ•˜๊ณ  โ†’ main์„ ๋””์Šค์–ด์…ˆ๋ธ”ํ•ด ๋ฐ˜ํ™˜๊ฐ’์ด ์–ด๋””์„œ ๋ฒ„๋ ค์ง€๋Š”์ง€ ์งš๊ณ  โ†’ ๊ทธ ์ง€์ ์— gdb๋ฅผ ๊ฑธ์–ด $rax๋ฅผ ์ฝ๋Š”๋‹ค.



๐Ÿ”ฌ ์ •์ฐฐ โ€” ์‹คํ–‰ํ•ด๋„ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์•ˆ ๋‚˜์˜จ๋‹ค

๋จผ์ € ๊ทธ๋ƒฅ ์‹คํ–‰ํ•ด ๋ณด๊ณ , ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋ฌธ์ž์—ด๋กœ ๋ฐ•ํ˜€ ์žˆ๋Š”์ง€ strings๋กœ ํ™•์ธํ•œ๋‹ค.

./check_return_value
strings -a check_return_value | grep -iE "flag|DH\{"
๊ทธ๋ƒฅ ์‹คํ–‰ํ•˜๋ฉด OK. I will return flag. ์™€ I have returned the flag ๋‘ ์ค„๋งŒ ๋‚˜์˜ค๊ณ , strings -a ๊ฒฐ๊ณผ์—๋„ DH ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ ๋ฌธ์ž์—ด์€ ํ•œ ๊ฑด๋„ ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” ํ„ฐ๋ฏธ๋„ ํ™”๋ฉด
๊ทธ๋ƒฅ ์‹คํ–‰ํ•˜๋ฉด OK. I will return flag. ์™€ I have returned the flag ๋‘ ์ค„๋งŒ ๋‚˜์˜ค๊ณ , strings -a ๊ฒฐ๊ณผ์—๋„ DH ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ ๋ฌธ์ž์—ด์€ ํ•œ ๊ฑด๋„ ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” ํ„ฐ๋ฏธ๋„ ํ™”๋ฉด

์‹คํ–‰ํ•˜๋ฉด OK. I will return flag.์™€ I have returned the flag :) ๋‘ ์ค„๋งŒ ๋‚˜์˜จ๋‹ค. ํ”Œ๋ž˜๊ทธ๋Š” ์—†๋‹ค. strings๋กœ ๋’ค์ ธ๋„ ์ด ์•ˆ๋‚ด ๋ฌธ๊ตฌ๋งŒ ๊ฑธ๋ฆฌ๊ณ  DH{๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด์€ ์—†๋‹ค. ์ฆ‰ ํ”Œ๋ž˜๊ทธ๋Š” ์ •์ ์œผ๋กœ ๋ฐ•ํ˜€ ์žˆ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์‹คํ–‰ ์ค‘์— ๋งŒ๋“ค์–ด์ง„๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋งŒ๋“ค์–ด์ง€๋Š” ์ˆœ๊ฐ„์„ ์žก์•„์•ผ ํ•œ๋‹ค.


๐Ÿ”Ž main ๋ถ„์„ โ€” ๋ฐ˜ํ™˜๊ฐ’์„ ๋งŒ๋“ค๊ณ  ๊ณง๋ฐ”๋กœ ๋ฒ„๋ฆฐ๋‹ค

main์„ radare2๋กœ ๋””์Šค์–ด์…ˆ๋ธ”ํ•œ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ์งง์•„ ํ๋ฆ„์ด ํ•œ๋ˆˆ์— ๋“ค์–ด์˜จ๋‹ค. -A๊ฐ€ ๋ฑ‰๋Š” ๋ถ„์„ ์ง„ํ–‰ ๋กœ๊ทธ(INFO: Analyze โ€ฆ)๊ฐ€ ํ™”๋ฉด์„ ๋ฎ์–ด์„œ log.quiet=true๋กœ ๋ˆŒ๋Ÿฌ ๋’€๋‹ค.

r2 -q -e log.quiet=true -A -c "s main; pdf" check_return_value
radare2 ๋กœ ๋œฌ main ๋””์Šค์–ด์…ˆ๋ธ”. 0x004015d7 ์˜ call fcn.0040152b ๋ฐ”๋กœ ๋‹ค์Œ ์ค„ 0x004015dc ์—์„œ lea rax, str.I_have_returned_the_flag ๋กœ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ฎ์–ด์“ฐ๋Š” ๊ฒŒ ๋ณด์ธ๋‹ค
radare2 ๋กœ ๋œฌ main ๋””์Šค์–ด์…ˆ๋ธ”. 0x004015d7 ์˜ call fcn.0040152b ๋ฐ”๋กœ ๋‹ค์Œ ์ค„ 0x004015dc ์—์„œ lea rax, str.I_have_returned_the_flag ๋กœ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ฎ์–ด์“ฐ๋Š” ๊ฒŒ ๋ณด์ธ๋‹ค

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

call fcn.0040152b               ; rax = ํ”Œ๋ž˜๊ทธ๋ฅผ ์กฐ๋ฆฝํ•ด ๊ทธ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
lea  rax, str.I_have_returned_the_flag  ; rax๋ฅผ ์•ˆ๋‚ด ๋ฌธ์ž์—ด๋กœ ๋ฎ์–ด์”€ (!)

fcn.0040152b๊ฐ€ ๋ฒ„ํผ์— ํ”Œ๋ž˜๊ทธ๋ฅผ ์กฐ๋ฆฝํ•˜๊ณ  ๊ทธ ํฌ์ธํ„ฐ๋ฅผ rax๋กœ ๋Œ๋ ค์ค€๋‹ค. ๊ทธ๋Ÿฐ๋ฐ main์€ ๊ทธ rax๋ฅผ ์–ด๋””์—๋„ ์“ฐ์ง€ ์•Š๊ณ , ๋ฐ”๋กœ ๋‹ค์Œ ๋ช…๋ น์—์„œ lea rax, "I have returned the flag :)"๋กœ ๋ฎ์–ด์จ ๋ฒ„๋ฆฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์•ˆ๋‚ด ๋ฌธ์ž์—ด๋งŒ puts๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’์„ ํ™•์ธ(check)ํ•˜์ง€ ์•Š๊ณ  ํ˜๋ ค๋ณด๋‚ด๋Š” ๊ฒƒ, ๊ทธ๊ฒŒ ์ด ๋ฌธ์ œ์˜ ์ „๋ถ€๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด call์ด ๋๋‚˜๊ณ  lea๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ง์ „, ์ฆ‰ ์ฃผ์†Œ 0x4015dc์—์„œ rax๋Š” ์•„์ง ํ”Œ๋ž˜๊ทธ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค. ์—ฌ๊ธฐ์— ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋ฅผ ๊ฑธ๋ฉด ๋œ๋‹ค.



๐ŸŽฏ ํ’€์ด โ€” ๋ฎ์–ด์“ฐ๊ธฐ ์ง์ „ $rax๋ฅผ ์ฝ๋Š”๋‹ค

๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” non-PIE๋ผ ์ฃผ์†Œ๊ฐ€ ๊ณ ์ •(0x4015dc)์ด๋‹ค. gdb๋กœ ๊ทธ ์ง€์ ์— ๋ฉˆ์ถฐ rax๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.

gdb -q -batch -ex "break *0x004015dc" -ex "run" -ex 'printf "returned rax -> flag:\n"' -ex 'x/s $rax' ./check_return_value
gdb -batch ๋กœ 0x004015dc ์— ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋ฅผ ๊ฑธ๊ณ  ๋ฉˆ์ถ˜ ํ™”๋ฉด. x/s $rax ์ถœ๋ ฅ ์ค„์— ooh you figured out me ๋กœ ์‹œ์ž‘ํ•˜๋Š”, ์กฐ๋ฆฝ์ด ๋๋‚œ ํ”Œ๋ž˜๊ทธ ๋ฌธ์ž์—ด์ด ๊ทธ๋Œ€๋กœ ์ฐํ˜€ ์žˆ๋‹ค
gdb -batch ๋กœ 0x004015dc ์— ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋ฅผ ๊ฑธ๊ณ  ๋ฉˆ์ถ˜ ํ™”๋ฉด. x/s $rax ์ถœ๋ ฅ ์ค„์— ooh you figured out me ๋กœ ์‹œ์ž‘ํ•˜๋Š”, ์กฐ๋ฆฝ์ด ๋๋‚œ ํ”Œ๋ž˜๊ทธ ๋ฌธ์ž์—ด์ด ๊ทธ๋Œ€๋กœ ์ฐํ˜€ ์žˆ๋‹ค

0x4015dc์—์„œ ๋ฉˆ์ถฐ x/s $rax๋กœ ์ฝ์œผ๋ฉด ์กฐ๋ฆฝ์ด ๋๋‚œ ๋ฌธ์ž์—ด์ด ๊ทธ๋Œ€๋กœ ๋‚˜์˜จ๋‹ค.

ooh you figured out me :) Flag is DH{0e82b5c5082e44a74dbb6d05e91387ee}

์กฐ๋ฆฝ ํ•จ์ˆ˜ ์•ˆ์˜ XORยท์น˜ํ™˜ ๋‹จ๊ณ„๋ฅผ ์†์œผ๋กœ ๋‹ค ๋˜์งš์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์–ด์ฐจํ”ผ ๋กœ์ปฌ์—์„œ ๋„๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ผ ๊ฒฐ๊ณผ ๋ฒ„ํผ๋ฅผ ์‹คํ–‰ ์ค‘์— ์ฝ๋Š” ํŽธ์ด ํ›จ์”ฌ ๋น ๋ฅด๋‹ค. ์ •์  ๋ถ„์„์œผ๋กœ "์–ด๋””์„œ ๋ฒ„๋ ค์ง€๋Š”์ง€"๋งŒ ์ •ํ™•ํžˆ ์งš๊ณ , ๊ทธ ์ง€์ ์„ ๋Ÿฐํƒ€์ž„์œผ๋กœ ํ™•์ธํ•œ ์…ˆ์ด๋‹ค.

FLAG: DH{0e82b5c5082e44a74dbb6d05e91387ee}



๐Ÿ“ ๊ฒฐ๋ก 

๋ฐ˜ํ™˜๊ฐ’๋„ ๊ฒฐ๊ตญ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋”˜๊ฐ€์— ์žˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ’์„ ํ™”๋ฉด์— ์•ˆ ๋ฟŒ๋ฆฐ๋‹ค๊ณ  ๊ทธ ๊ฐ’์ด ์—†๋Š” ๊ฒŒ ์•„๋‹ˆ๋‹ค. rax์— ์‹ค๋ ค ์žˆ์—ˆ๊ณ , ๋ฎ์–ด์“ฐ๊ธฐ ์ „ ํ•œ์ˆœ๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ์— ์‚ด์•„ ์žˆ์—ˆ๋‹ค. ๊ทธ ํ•œ์ˆœ๊ฐ„์„ ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋กœ ์žก์œผ๋ฉด ๋œ๋‹ค.

์ •์ ์œผ๋กœ ์ง€์ ์„ ์งš๊ณ , ๋Ÿฐํƒ€์ž„์œผ๋กœ ํ™•์ธํ•œ๋‹ค.

main์„ ๋””์Šค์–ด์…ˆ๋ธ”ํ•ด "๋ฐ˜ํ™˜๊ฐ’์ด 0x4015dc์—์„œ ๋ฒ„๋ ค์ง„๋‹ค"๋Š” ๊ฑธ ๋จผ์ € ์ •ํ™•ํžˆ ์งš์€ ๋•์—, gdb๋Š” ๋”ฑ ํ•œ ์ค„(x/s $rax)๋กœ ๋๋‚ฌ๋‹ค. ์กฐ๋ฆฝ ๋กœ์ง ์ „์ฒด๋ฅผ ์—ญ์‚ฐํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฒฐ๊ณผ๋งŒ ์ •ํ™•ํžˆ ํšŒ์ˆ˜ํ•˜๋Š” ๊ฒŒ ์ด๋Ÿฐ ๋ฌธ์ œ์˜ ์š”๋ น์ด๋‹ค.

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

Comments

๋Œ“๊ธ€

0๊ฐœ

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

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

Related

๊ด€๋ จ ๊ธ€

3๊ฐœ
[๐Ÿฅ‡ Gold 4] 5๋ฐ”์ดํŠธ ์Šคํ… 97๊ฐœ๋กœ ๋ถ€์ˆœ ๊ฑด ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋””์Šค์–ด์…ˆ๋ธ”๋Ÿฌ์˜€๋‹ค โ€” DreamHack Vernichtet ํ’€์ด
blog

[๐Ÿฅ‡ Gold 4] 5๋ฐ”์ดํŠธ ์Šคํ… 97๊ฐœ๋กœ ๋ถ€์ˆœ ๊ฑด ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋””์Šค์–ด์…ˆ๋ธ”๋Ÿฌ์˜€๋‹ค โ€” DreamHack Vernichtet ํ’€์ด

.text ์ „์ฒด์— `eb ff c1 ff c9` ๊ฐ€ 97๊ฐœ ๋ฐ•ํ˜€ ์žˆ๋‹ค. jmp ๊ฐ€ ์ž๊ธฐ ์˜คํผ๋žœ๋“œ๋กœ ๋›ฐ์–ด๋“œ๋Š” ๊ฒน์นจ ๋ช…๋ น์ด๋ผ ์„ ํ˜• ์Šค์œ• ๋””์Šค์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ์‹คํ–‰๋˜์ง€๋„ ์•Š๋Š” ์œ ๋ น ๋ช…๋ น์„ ๋ณด์—ฌ ์ค€๋‹ค. ๊ธธ์ด๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ NOP ์œผ๋กœ ๋ฎ์–ด ์ฝ”๋“œ๋ฅผ ๋˜์‚ด๋ฆฌ๊ณ , ๊ทธ ์•ˆ์— ์ˆจ์–ด ์žˆ๋˜ 15ร—15 Hidato ํผ์ฆ์„ ํ’€์–ด ๋‹ต์•ˆ ํŒŒ์ผ์˜ sha256 ์„ ํ”Œ๋ž˜๊ทธ๋กœ ๋ฐ›์•„๋ƒˆ๋‹ค.
#dreamhack#ctf#reversing+7
2026-08-17#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 +4
[๐Ÿฅ‰ Bronze 2] .rodata 247๋ฐ”์ดํŠธ๊ฐ€ ์Šคํƒ VM ๋ฐ”์ดํŠธ์ฝ”๋“œ์˜€๋‹ค โ€” DreamHack SelfStatus ํ’€์ด
blog

[๐Ÿฅ‰ Bronze 2] .rodata 247๋ฐ”์ดํŠธ๊ฐ€ ์Šคํƒ VM ๋ฐ”์ดํŠธ์ฝ”๋“œ์˜€๋‹ค โ€” DreamHack SelfStatus ํ’€์ด

ํ”„๋กœ๊ทธ๋žจ์ด ์ž๊ธฐ /proc/self/status ๋ฅผ ์ฝ์–ด TracerPid ๋กœ ๋””๋ฒ„๊ฑฐ๋ฅผ ์•Œ์•„์ฑ„๊ณ  ์กฐ์šฉํžˆ ์ฃฝ๋Š”๋‹ค. ์ง„์งœ ๊ฒ€์‚ฌ๋Š” .rodata ์— ๋ฐ•ํžŒ 247๋ฐ”์ดํŠธ๋ฅผ ๋„๋Š” ์Šคํƒ VM ์ด ๋งก๋Š”๋ฐ, ๊ทธ VM ์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์•„์˜ˆ ์ณ๋‹ค๋ณด์ง€ ์•Š๊ณ  ์ •๋‹ต ๋ฌธ์ž์—ด์„ ์Šค์Šค๋กœ ์กฐ๋ฆฝํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์—ญ์‚ฐํ•  ๊ฒƒ์ด ์—†๋‹ค โ€” VM ๋งŒ ์˜ฎ๊ฒจ ์ ์œผ๋ฉด ๋๋‚œ๋‹ค.
#dreamhack#ctf#reversing+6
2026-08-19#dreamhack +4