본문 바로가기
Linux

[Linux] Pwntools gdb.attach() 하는법.

by snwo 2020. 9. 17.

python 익스코드를 작성한 뒤, gdb 를 attach 해 코드를 디버깅하고싶을때, gdb.attach() 를 사용합니다.

from pwn import *

r=process("./program")

payload='~~~~~'

###attach###
gdb.attach(r)
pause()
###attach###

r.sendline(payload)

r.interactive()

 

payload 를 보내는 부분 전에 (종료되기때문)

gdb.attach(r) ; pause() 이렇게 코드를 삽입해줍니다.

 

# gdb.attach(r) 이 안먹힐때는 수동으로할 수 있습니다.

 


[ 수동버전 ]

 

gdb.attach(r) 은 쓰지않고,

pause() 만 작성합니다.

 

코드를 실행시킨 뒤, 오른쪽 위에 process id 를 확인해 줍니다.

 

$ sudo gdb attach -p (process id)

새 창을 연뒤, 위 명령어를 입력해서 gdb 를 attach 해줍니다.

 

짠 ~ 이 모습이 attach 된 모습입니다. 


gdb.attach(r) 을 입력했으면, 위의 새 창이 자동으로 뜰껍니다.

 

원하는곳에 bp 를 걸어서, c (continue) 해줍니다.

여기서 멈추는게 당연하니까, 겁먹지 말고,

 

아까 실행시킨 python 코드로 돌아와서, 아무키나 누른 뒤, 코드를 계속 실행시켜줍니다.

 

정상적으로 BP 가 걸린것을 볼 수 있습니다 ! 이제부터 재밌는 디버깅 즐기시면 됩니다.