๐ดโ ๏ธ 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.. ์ด์ 1 ๋ค์