Questão:
Posso enviar o comando gdb do IDA Debugger para gdbserver?
user3746442
2014-08-27 03:47:37 UTC
view on stackexchange narkive permalink

Quero enviar o comando gdb (como "backtrace", "b * 0xAAAAAAA", "ib", ...) do depurador IDA para o gdbserver sobre a depuração remota do gdb e receber o resultado e imprimi-lo na visualização de saída do IDA Posso fazer isso? Alguém já tentou isso antes?

Eu encontrei essa função "SendDbgCommand" na ajuda do IDA

Envie um comando arbitrário para o mecanismo do depurador. Retorna: a saída do comando.

Nota: esta função está disponível para os seguintes depuradores: windbg, gdb, bochs

string SendDbgCommand (string cmd);

Mas quando tentei, no script idc ou no script idapython, não funcionou!

mais detalhes:

  • eu usei o depurador remoto GDB ida 6.1 e minha máquina remota é o Ubuntu, execute o comando

gdbserver --multi localhost: 12345

como uma sessão de depuração remota normal e está tudo bem

agora, quero usar outros comandos gdb (como acima) além dos operadores fornecidos pela GUI ida

  if s.startswith ("IDC_FAILURE"): raise Exception, "O comando do depurador está disponível apenas quando o depurador está ativo!"  
  • eu também tentei você se SendDbgCommand no script idc mas também não funcionou, ele retorna 0

Alguém pode me ajudar por favor? Muito obrigado!

Você não explicou o suficiente o que já tentou, qual configuração usou e, também, qual foi o problema que encontrou ao executá-la. Tente dar mais detalhes.
ok, vou adicionar mais detalhes!
Um responda:
Igor Skochinsky
2014-08-27 17:10:18 UTC
view on stackexchange narkive permalink

Os comandos que você está tentando usar são implementados no executável GDB, não no gdbserver . O gdbserver implementa o Remote Serial Protocol, e o IDA o está usando para enviar comandos (registros de leitura / gravação / memória, definir pontos de interrupção etc.) e obter resultados.

Como o IDA não está usando o programa GDB, ele não pode processar seus comandos. Você precisa usar comandos IDA para controlar o executável e recuperar as informações.

A linha de comando "GDB" na parte inferior permite que você envie os chamados "comandos de monitor" que permitem que o stub remoto implemente vários funcionalidade não coberta pelo protocolo. Por exemplo, o stub GDB da VMWare oferece suporte ao comando "r" para obter detalhes sobre alguns registros.

ah ... então gdbserver tem comandos privados e ida se comunica com ele por protocolo serial remoto e SendDbgCommand é usado para enviar comandos privados do gdbserver?


Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...