먼저 pwntools를 설치 해 준다.
apt-get update
apt-get upgrade -y
apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential -y
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pwntools
apt-get update와 apt-get upgrade를 해 주고, python과 pip, pwntools를 설치 해준다.
설치 후 파이썬을 실행하여 확인해보면
이렇게 오류가 나지 않으면 된다.
다음은, 분석할 때 쓰일 pwndbg이다.
apt-get install gdb -y
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
gdb를 설치 해주고, git clone을 통해 가져와서 setup.sh를 실행시킨다.
그리고 테스트파일을 만든 뒤 gdb로 확인 해보면
이렇게 잘 적용된다.
그리고 프로세스를 실행시키면
이런 식으로 레지스트리의 상태와 스택의 상태, 현재 명령어들을 손쉽게 볼 수 있다.
다음은 one gadget, one shot gadget 등으로 불리는 ROP에 필요한 여러 gadget을 찾을 필요 없이 execve("/bin/sh",0,0) 과 같은 명령어가 있는 주소를 바로 출력해주는, ROP로 필요한 가젯을 찾기 힘들 때 쓰일 수 있는 툴이다.
apt install ruby
gem install one_gadget
ruby를 설치 후 gem을 이용해 설치 후, 인자로 libc파일을 넣어 실행시켜 보면
이런 식으로 One Shot Gadget의 주소가 나온다.