원격 호스트에서 취약한 애플리케이션을 디버깅하고 있습니다. 호스트에 gbserver를 설정했습니다.
gdbserver host:1234 /my/target/app
내 로컬 호스트에 연결되어 있습니다.
$ gdb /same/target/app
gdb$ target extended-remote 192.168.0.100:1234
성공적으로 연결되었으며 대상 명령어에 중단점을 계속 설정할 수 있습니다.
$gdb disas vuln_function
....
0x08048e6b <+116>: ret
End of assembler dump.
gdb$ b *0x08048e6b
Breakpoint 1 at 0x8048e6b
디스어셈블된 함수 코드를 보고 호스트 자체에서 테스트한 결과, 올바른 주소에서 중단하고 있으며 어쨌든 버퍼 오버플로를 유발하고 있으며 이로 인해 gdb가 자체적으로 중단될 것이라고 100% 확신합니다. .
하지만 내 gdb 클라이언트는 일반적인 중단점을 얻지 못하고 아무 일도 일어나지 않습니다. gdbserver는 segfault를 발생시키지 않고 BO에서 정지합니다(따라서 ret에서 중단되는 것 같습니다). 중단점에 대해 메시지를 표시하지 않는 것 외에는 gdb가 충돌하거나 오작동하지 않는 것 같습니다.
gdbserver로 디버깅할 때 중단점을 설정하는 특별한 방법이 있나요?