Abra a pasta do seu projeto
Escolha uma pasta de trabalho que contenha o seu código-fonte em C, uma cópia do arquivo compilado e, mais tarde, a listagem exportada.
Escolha uma função pequena de um programa em C que você mesmo compilou e estude-a da primeira instrução até o return final. A lei e os termos de licença mudam de país para país, então use apenas código seu ou arquivos de prática. Seguem quatro passos.
Escolha uma pasta de trabalho que contenha o seu código-fonte em C, uma cópia do arquivo compilado e, mais tarde, a listagem exportada.
Deixe o Shell rodar o comando de exportação do seu disassembler na cópia, ou salve você mesmo a listagem, para que o resultado seja um arquivo de texto.
Peça ao agente que leia a listagem e explique a função linha por linha, e depois salve as notas com write_file.
Compare as notas com o seu código-fonte e a listagem, leia o diff no Ask first e teste o resultado em um laboratório, se isso for legal.
add_numbers.asmtexto lidoedx add_numbers.asm2 ocorrênciasnotes/add_numbers.mdsalvonotes/add_numbers.md+4 linhas; add_numbers.asm - teaching listing, x64 Windows
; Returns the sum of its first two integer arguments.
; Argument 1 arrives in ecx (low half of rcx).
; Argument 2 arrives in edx (low half of rdx).
add_numbers:
mov eax, ecx ; copy argument 1 into eax
add eax, edx ; add argument 2, the sum stays in eax
ret ; return to the caller, result in eaxEsta função soma dois inteiros. Pela convenção do Windows x64, os argumentos chegam em ecx e edx, a soma é montada em eax e ret devolve o controle a quem chamou.
Uma dúvida comum de iniciante é como começar a aprender assembly, e a resposta é uma função que você mesmo escreveu. Escreva uma função curta em C, compile e exporte a listagem como texto. O read_file abre a listagem e o agente explica cada instrução: qual registrador guarda cada argumento, o que a pilha faz e onde o resultado volta. O write_file salva essas explicações em notes/begin.md. No Plan only, o agente primeiro lista esses passos. Nada é executado ainda. Depois troque para o Ask first e leia o diff antes de cada gravação. Por fim, compare as notas com o seu código e, se for legal, teste a função compilada em um laboratório.
Um bom exercício de engenharia reversa de APIs é listar as funções que a sua própria biblioteca expõe e anotar o que cada argumento faz. Salve como texto a lista de funções importadas e expostas da sua própria ferramenta, e então o agente usa o grep para achar cada chamada a uma função e o read_file para abrir as linhas ao redor. Ele monta uma tabela em notes/api.md, e o edit_file mostra cada mudança como um diff. Comece com uma função. O mesmo método ajuda a recuperar como o seu próprio código antigo funcionava. O agente pode errar um tipo ou uma finalidade, então compare cada linha com o seu código-fonte e com um teste seu antes de aceitar.