Configurando pontos de interrupção remotamente com gdb / gdbserver

1

Estou depurando um aplicativo vulnerável em um host remoto. Eu configurei o gbserver no host com:

gdbserver host:1234 /my/target/app

No meu host local, eu me conectei com:

$ gdb /same/target/app
gdb$ target extended-remote 192.168.0.100:1234

Eu conecto com sucesso e posso continuar a definir um ponto de interrupção em uma instrução de destino, ou seja:

$gdb disas vuln_function
....
   0x08048e6b <+116>:   ret
End of assembler dump.
gdb$ b *0x08048e6b
Breakpoint 1 at 0x8048e6b

Olhando para o código de função desmontado e testando isso no próprio host, tenho 100% de certeza de que estou quebrando o endereço certo e, de qualquer forma, estou acionando um estouro de buffer que deve fazer o gdb quebrar sozinho .

Mas em vez de obter o ponto de interrupção normal no meu cliente gdb, nada acontece. gdbserver congela no BO (então eu acho que ele quebrou no ret) sem jogar o segfault. O gdb não parece estar travando ou se comportando de forma anormal, além de não me dar um prompt sobre o ponto de interrupção.

Existe uma maneira especial de definir pontos de interrupção ao depurar com o gdbserver?

    
por Juicy 15.07.2015 / 22:11

0 respostas

Tags