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

๋ฐ˜์‘ํ˜•

๐Ÿด‍โ˜ ๏ธ CTF ๐Ÿด‍โ˜ ๏ธ/๋ฆฌ๋ฒ„์‹ฑ

(2)
[Dream Hack - Reversing] Simple Patch me ๋ฌธ์ œ ํ•ด์„main ํ•จ์ˆ˜dword_40404C ๊ฐ’์ด 0 ์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ 0x2237๊นŒ์ง€ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ while๋ฌธ์ด ๋™์ž‘ํ•˜๊ณ  ์žˆ๋‹ค. sleep(0xE10u) ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ๋ฒˆ ์ฆ๊ฐ€ํ• ๋•Œ๋งˆ๋‹ค 1์‹œ๊ฐ„์”ฉ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ง„ํ–‰ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. dword_40404C์— 0x2237๋ณด๋‹ค ํฐ ๊ฐ’์„ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•sleep ํ•จ์ˆ˜์— 0์„ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•๋ฐฉ๋ฒ• ์„ ํƒ์„ ์œ„ํ•ด sub_401196 ํ•จ์ˆ˜๋ฅผ ์‚ดํŽด๋ณด์ž  sub_401196 dword_40404C = 0x2238 ๋กœ ์„ธํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋„ ๊ฐ€๋Šฅํ•ด ๋ณด์ธ๋‹ค.sleep(0) ์„ ์„ค์ •ํ•˜๋Š”๊ฒŒ ๊ฐ„๋‹จํ•ด ๋ณด์—ฌ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค. ํ’€์ด ๋ฐฉ๋ฒ• a) dword_40404C = 0x2238 ์„ธํŒ…ELF ํŒŒ์ผ ํฌ๋งท์ด๋ฏ€๋กœ Linux ํ™˜๊ฒฝ์—์„œ pwnd..
[Dream Hack - Reversing] Simple Counter ๋ฌธ์ œ ํ•ด์„ํŒŒ์ผ ์‹คํ–‰ ๊ฒฐ๊ณผ IDA์ˆ˜๋„ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด i๋Š” 10์—์„œ 0๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ถœ๋ ฅ๋˜๊ณ , i=3์ผ๋•Œ, src์— ์–ด๋–ค ์ŠคํŠธ๋ง์ด ๋ณต์‚ฌ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.flag_gen ํ•จ์ˆ˜๋Š” IDA View์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋™์ž‘๊ณผ์ •์„ ์š”์•ฝํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.loc_15A0 : i์™€ 0 ๋น„๊ต.→ i > 0 : ๋ฐ˜๋ณต๋ฌธ ์ˆ˜ํ–‰ → i ≤ 0 : i ์™€ 5 ๋น„๊ต.     → i == 5 : flag_gen ์‹คํ–‰      → i ≠ 5 : ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ.i๋ฅผ ์ค‘๊ฐ„์—์„œ 5๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด flag_gen ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. pwndbg$ break main $ run ์—์„œ ์™€ 5๊ฐ€ ๋น„๊ต๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. breakpoint๋ฅผ ๊ฑธ๊ณ  ์‹คํ–‰ํ•œ๋‹ค.$ break *main+278$ continue $ x/1 $rbp-40..

๋ฐ˜์‘ํ˜•