작성자 정보
댓글
1
익명
(219.251)
p = process(~~)
print(p.pid) # 프로세스의 pid 출력
pause()
...
로컬에서 테스트하는 경우 이렇게 exploit.py를 작성하고
1. python3 exploit.py 실행 -> 프로세스의 pid 출력 후 pause
2. 다른 터미널을 열어서 gdb 실행
3. gdb에서 attach <pid> (예 : attach 132)를 실행하면
gdb로 pwntools로 실행한 프로세스를 디버깅 할 수 있습니다
이후
1. gdb에서 입력 받은 후의 주소에 breakpoint를 걸고 continue 실행
2. 공격 코드를 실행한 터미널에서 엔터를 눌러 pause를 풀어주면 gdb로 원하는 곳에서 스택의 값을 확인하실 수 있습니다
이 방법 말고도 pwntools의 gdb.attach()를 사용하실 수 있는데 제가 자주 사용하지 않아서 사용법을 잘 모르겠네요
더 자세한 내용은 pwntools gdb.attach로 검색해보시면 될 거 같아요 :)