GDB
GDB GNU Debugger์ ์ฝ์ ์ ๋์ค์ ๋๋ฒ๊ฑฐ๋ ์คํ์์ค๊ฐ ์๋๋ผ GNU์์ ์๋ก ๊ฐ๋ฐํ ๋๋ฒ๊ฑฐ ๋๋ฒ๊น ์ ์ํด์๋ register(๋ ์ง์คํฐ ๊ฐ), disassem(rip ๋ถ๊ทผ ์ฃผ์๋ฅผ ๋์ค์ด์ ํ ๊ฐ), stack(์คํ์ ๊ฐ), backtrace(ํ์ฌ rip์ ๋๋ฌ ํ ๋ ๊น์ง ๊ฑฐ์ณ๊ฐ ํจ์๋ค) ์ ํ์ ํด์ผ ํ๋ฉฐ, ์ด๋ฅผ context(๋งฅ๋ฝ) ์ด๋ผ ํ๋ค. pwndbg ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๋ฉด hacking์ ๊ด๋ จ๋ ๋ด์ฉ์ ๋๋ฒ๊น ํ๊ธฐ ์ฉ์ดํ๋ค. https://github.com/pwndbg/pwndbg ์ฃผ์์์ git์ clone ๋ฐ๊ณ , ./setup.sh๋ฅผ ์คํ์ํค๋ฉด ์ดํ gdb ๋ช ๋ น์ ์น ๋ ์๋์ผ๋ก pwndbg ํ๋ฌ๊ทธ์ธ์ด ์ ์ฉ๋ gdb๊ฐ ์คํ๋๋ค. ์ปดํ์ผ gcc๋ก ์ปดํ์ผ์ ์ต์ ์ -g ๋ฅผ ๋ถ์ฌ์ผ ์์ค๋ฅผ ๋ณด๋ฉด์ ๋๋ฒ๊น ์ด ๊ฐ๋ฅ ๋ฆฌ๋ ์ค์์ ์ปดํ์ผํ ํ์ผ์ ELF (Executable and Linkable Format) ์ ์คํ ํ์ผ์ด ๋๋ค. ELF ํ์ผ์ ํ์ผ ์คํ์ ํ์ํ ์ ๋ณด๊ฐ ๋ ํค๋์ ์ฌ๋ฌ ์น์ ๋ค๋ก ๊ตฌ์ฑ๋๋ค. ์น์ ์๋ ๊ธฐ๊ณ์ด ์ฝ๋ ๋ฑ์ ์ ๋ณด๋ค์ด ๋ค์ด์๋ค. readelf -h [ELFํ์ผ] ๋ช ๋ น์ผ๋ก ELF ํ์ผ์ ํค๋ ์ ๋ณด๋ฅผ ํ์ธ ํ ์ ์๋ค. gdb ์ต์ gdb [ํ์ผ์ด๋ฆ] : ํด๋น ํ์ผ์ด๋ฆ ๋๋ฒ๊น ์คํ --args [arg1] [arg2] [...] : ํ์ผ ์คํ์ ํ์ํ argument๋ฅผ ์ ๋ฌ ๊ธฐํ ๋ช ๋ น์ด ์คํ ์ ์ค์ ์ฌํญ coredumb ํ์ผ ...