๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง2

Dreamhack ๋ฆฌ๋ฒ„์‹ฑ ๋ฌธ์ œํ’€์ด: rev-basic-2 IDA์— ๋„ฃ๊ณ  F5 ๋ˆŒ๋Ÿฌ ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด ์œ„์˜ ํ™”๋ฉด์ด ๋œธ. ์ž…๋ ฅ ๊ฐ’ ๋ฐ›์•„์„œ sub_140001000 ํ•จ์ˆ˜์— ๋„ฃ์€ ๋‹ค์Œ ์ฐธ์ด๋ฉด Correct, ๊ฑฐ์ง“์ด๋ฉด Wrong ์ถœ๋ ฅ. ์ € sub_140001000 ํ•จ์ˆ˜๊ฐ€ ๋ญ”์ง€ ๊ถ๊ธˆํ•˜๋‹ˆ๊นŒ ๋“ค์–ด๊ฐ€์„œ ์•Œ์•„๋ณด์ž. ํ•จ์ˆ˜ ๋”๋ธ” ํด๋ฆญํ•ด์„œ ๋“ค์–ด๊ฐ€๋ฉด ์œ„์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋ณด์ž„. for๋ฌธ์ด ๋ณด์ธ๋‹ค. i๊ฐ€ 0๋ถ€ํ„ฐ 0x12 ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ 18๋ณด๋‹ค ์ž‘์„ ๋•Œ๊นŒ์ง€ i++๋˜๋‹ˆ๊นŒ ํ•œ ๋งˆ๋””๋กœ 18๋ฒˆ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐ˜๋ณตํ•˜๋ผ๋Š” ์ด์•ผ๊ธด๋ฐ, ๋ญ˜ ๋ฐ˜๋ณตํ•˜๋Š”์ง€ for๋ฌธ ์•ˆ์„ ๋ณด๋‹ˆ๊นŒ !=๊ฐ€ ๋ณด์ธ๋‹ค. ๋‘ ๊ฐœ๋ฅผ ๋น„๊ตํ•ด์„œ ๋‹ค๋ฅด๋ฉด return 0ํ•˜๊ณ  ๊ฐ™์œผ๋ฉด return1 ํ•˜๋ž€๋‹ค. ๋ฐ˜ํ™˜๊ฐ’์ด 0์ด๋ฉด ๊ฑฐ์ง“, 0์ด ์•„๋‹ˆ๋ฉด ์ฐธ์ด๋‹ˆ๊นŒ ๋น„๊ตํ•˜๋Š” ์ € ๋‘˜์ด ๊ฐ™์•„์•ผ ํ•œ๋‹ค. ๋‘ ๋น„๊ต ๋Œ€์ƒ์„ ๋ณด๋‹ˆ ๋ฌธ์ž์™€ ์—ฐ๊ด€์ด ์žˆ์–ด ๋ณด์ธ๋‹ค. ๋ฌธ์ž๋Š” 1byte, 4bit๋‹ˆ๊นŒ &a.. 2023. 10. 31.
๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง: ์–ด์…ˆ๋ธ”๋ฆฌ (ํ•จ์ˆ˜) ๊นŒ๋ง‰๋ˆˆ์ด๋‹ค.ใ‚ท์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ฆฌ๋ฒ„์‹ฑ์— ํ•„์š”ํ•œ ์–ด์…ˆ๋ธ”๋ฆฌ ๋‚ด์šฉ ์ค‘ ํ•จ์ˆ˜ ๋ถ€๋ถ„์„ ๋‹ค๋ฃจ๊ณ ์ž ํ•œ๋‹ค.'๊ฐ•๋ณ‘ํƒ, ใ€Ž๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง ๋ฐ”์ด๋ธ”ใ€, ์œ„ํ‚ค๋ถ์Šค, 2014, 1p-127p.'์„ ์ฐธ๊ณ ํ–ˆ๋‹ค. ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐํ•จ์ˆ˜์˜ ์‹œ์ž‘push ebpmov ebp, esp ebp๋Š” ์Šคํƒ ๋ฒ ์ด์Šค ํฌ์ธํ„ฐ๋‹ค.push ebp๋Š” ์ง€๊ธˆ๊นŒ์ง€์˜ ๋ฒ ์ด์Šค ์ฃผ์†Œ๋ฅผ ์Šคํƒ์— ๋ณด๊ด€ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•˜๋‹ค.์ด๋ ‡๊ฒŒ ๋ฒ ์ด์Šค ํฌ์ธํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•œ ๋’ค, mov ebp, esp๋ฅผ ํ†ตํ•ด ์Šคํƒ ํฌ์ธํ„ฐ์ธ esp๋ฅผ ebp๋กœ ๋ฐ”๊พผ๋‹ค.์ƒˆ๋กœ์šด ํฌ์ธํ„ฐ๋ฅผ ๋ฒ ์ด์Šค๋กœ ์žก๋Š”๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. * ํ•จ์ˆ˜์˜ ์‹œ์ž‘๊ณผ ๋ ์ค‘๊ฐ„์— rsp๋กœ ํ• ๋‹น๋œ ๋ฐ”์ดํŠธ๋งŒํผ์˜ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•œ๋‹ค.ex:) 'sub rsp, 0x100' ํ•จ์ˆ˜์˜ ๋mov esp, ebppop ebpํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ์‚ฌ์šฉํ•œ ์Šคํƒ ์œ„์น˜๋ฅผ ์›๋ž˜๋Œ€.. 2023. 8. 3.