๋ฐ์ํ
ELF๋ถ์์ ์ํด์ kali์ gdb ํ๊ฒฝ์ ์ธํ ํ๊ณ pwndbg ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๊ณ ์ ํ๋ค.
ํ๊ฒฝ ์ธํ
๋ชจ๋ ๊ด๋ฆฌ์ ๊ถํ์ด ์๋ ์ํ์์ ์คํํด์ผ ํ๋ค. ๊ถํ ์์ด ์คํํ๋ค๊ฐ pwndbg ํ๋ฌ๊ทธ์ธ์ด ๋์ํ์ง ์์์ ์ ๋ฅผ ๋จน์๋ค.
- gdb ์ค์น
$ sudo su
$ apt-get install update
$ apt-get install upgrade -y
$ apt-get install gdb -y
- pwndbg ์ค์น
$ apt-get install python3.12 python3.12-venv python3-pip python3-dev git libssl-dev libffi-dev build-essential -y
$ python3 -m pip install --upgrade pip
$ python3 -m pip install --upgrade pwntools
$ git clone <https://github.com/pwndbg/pwndbg>
$ cd pwndbg
$ ./setup.sh
gdb๋ฅผ ์คํํ์ ๋, ์๋์ ๊ฐ์ด ๋จ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ์ค์น๊ฐ ๋์์์ ์ ์ ์๋ค.
pwndbg ๊ธฐ๋ณธ ์ฌ์ฉ๋ฐฉ๋ฒ
01. pwndbg ์์ํ๊ธฐ
- GDB ์คํ:
$ gdb ./your_binary
- Breakpoints ์ค์ :
$ break main # main ํจ์์ ๋ธ๋ ์ดํฌํฌ์ธํธ ์ค์
$ run # ํ๋ก๊ทธ๋จ ์คํ
- context ์กฐํ : ํ์ฌ์ ๋ ์ง์คํฐ, ์คํ, ๋์ค์ด์ ๋ธ๋ฆฌ, ์์ค ์ฝ๋ ๋ฑ์ ํ ๋ฒ์ ๋ณด์ฌ์ค
$ context
02. ๋ฉ๋ชจ๋ฆฌ ๊ฐ ์กฐํ
- x (Examine Memory): ๋ฉ๋ชจ๋ฆฌ์ ํน์ ์ฃผ์๋ฅผ ๋์คํ๋ ์ดํ ๋ ์ฌ์ฉํฉ๋๋ค. ๋ค์ํ ํฌ๋งท๊ณผ ํฌ๊ธฐ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
$ x/<count><format><size> <address>
count: ์ถ๋ ฅํ ํญ๋ชฉ ์ format: ์ถ๋ ฅ ํ์ (x - 16์ง์, d - 10์ง์, i - ์ด์ ๋ธ๋ฆฌ ์ฝ๋ ๋ฑ) size: ๋ฉ๋ชจ๋ฆฌ ํญ๋ชฉ ํฌ๊ธฐ (b - ๋ฐ์ดํธ, h - ํํ์๋, w - ์๋, g - Giant) address: ํ์ธํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์
# ์์
x/10xb 0x080484d2
x/5i $pc # ํ์ฌ PC๋ถํฐ ์ถ๋ ฅ
x/s 0x080484d2 # ๋ฌธ์์ด๋ก ์ถ๋ ฅ
03. ๋ฉ๋ชจ๋ฆฌ ๊ฐ ๋ณ์กฐ
๋ฉ๋ชจ๋ฆฌ ํจ์น:
patch byte 0x080484d2 0xEB
ํน์ ์ฃผ์ ๊ฐ ํจ์น :
set *0x080484d2 = 0xEB
๋ฐ์ํ
'๐ฆพ ๋ณด์ ๐ฆพ > ๋ฆฌ๋ฒ์ฑ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Practical Malware Analysis] Lab01-01.exe, Lab01-01.dll ๋ถ์ (0) | 2024.09.30 |
---|---|
x86-64 ์ด์ ๋ธ๋ฆฌ์ด (0) | 2024.08.28 |
x86-64 CPU ๋ ์ง์คํฐ (0) | 2024.08.28 |
CPU ๊ตฌ์กฐ (1) | 2024.08.26 |
PE ํ์ผ ๊ตฌ์กฐ (0) | 2024.08.26 |