rsp+
(na pilha)
Comando (lldb) | Descrição |
run (r) | Inicia a execução, que continuará sem interrupções até que um ponto de interrupção seja atingido ou o processo seja encerrado. |
continue (c) | Continua a execução do processo em depuração. |
nexti (n / ni) | Executa a próxima instrução. Este comando irá pular chamadas de função. |
stepi (s / si) | Executa a próxima instrução. Ao contrário do comando nexti, este comando irá entrar nas chamadas de função. |
finish (f) | Executa o restante das instruções na função atual ("frame") e retorna. |
control + c | Pausa a execução. Se o processo foi iniciado (r) ou continuado (c), isso fará com que o processo pare ... onde quer que esteja executando no momento. |
breakpoint (b) | b main #Qualquer função chamada main b <nome_do_bin>`main #Função main do binário b set -n main --shlib <nome_da_biblioteca> #Função main do binário indicado b -[NSDictionary objectForKey:] b -a 0x0000000100004bd9 br l #Lista de pontos de interrupção br e/dis <número> #Ativa/Desativa ponto de interrupção breakpoint delete <número> |
help | help breakpoint #Obter ajuda sobre o comando breakpoint help memory write #Obter ajuda para escrever na memória |
reg | reg read reg read $rax reg read $rax --format <formato> reg write $rip 0x100035cc0 |
x/s <endereço_do_registrador/memória> | Exibe a memória como uma string terminada em nulo. |
x/i <endereço_do_registrador/memória> | Exibe a memória como uma instrução de montagem. |
x/b <endereço_do_registrador/memória> | Exibe a memória como um byte. |
print object (po) | Isso irá imprimir o objeto referenciado pelo parâmetro po $raw
Observe que a maioria das APIs ou métodos Objective-C da Apple retornam objetos e, portanto, devem ser exibidos por meio do comando "print object" (po). Se o po não produzir uma saída significativa, use |
memory | memory read 0x000.... memory read $x0+0xf2a memory write 0x100600000 -s 4 0x41414141 #Escreve AAAA nesse endereço memory write -f s $rip+0x11f+7 "AAAA" #Escreve AAAA no endereço |
disassembly | dis #Desmonta a função atual dis -n <nome_da_função> #Desmonta a função dis -n <nome_da_função> -b <nome_do_binário> #Desmonta a função |
parray | parray 3 (char **)$x1 #Verifica o array de 3 componentes no registrador x1 |