Ouvre le dossier de ton projet
Choisis un dossier de travail qui contient ton code source C, une copie du fichier compilé et, plus tard, le listing exporté.
Choisis une petite fonction d'un programme C que tu as compilé toi-même et étudie-la de la première instruction au return final. La loi et les conditions de licence varient selon le pays, alors utilise uniquement ton propre code ou des fichiers d'entraînement. Quatre étapes suivent.
Choisis un dossier de travail qui contient ton code source C, une copie du fichier compilé et, plus tard, le listing exporté.
Laisse Shell lancer la commande d'export de ton désassembleur sur la copie, ou enregistre toi-même le listing, pour obtenir un fichier texte.
Demande à l'agent de lire le listing et d'expliquer la fonction ligne par ligne, puis enregistre les notes avec write_file.
Compare les notes avec ton code source et le listing, lis le diff dans Ask first et teste le résultat en laboratoire si c'est légal.
add_numbers.asmtexte luedx add_numbers.asm2 occurrencesnotes/add_numbers.mdenregistrénotes/add_numbers.md+4 lignes; 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 eaxCette fonction additionne deux entiers. Selon la convention Windows x64, les arguments arrivent dans ecx et edx, la somme est construite dans eax et ret rend la main à l'appelant.
Une question fréquente chez les débutants est de savoir comment se lancer dans l'assembleur, et la réponse est une fonction que tu as écrite toi-même. Écris une courte fonction C, compile-la et exporte le listing en texte. read_file ouvre le listing et l'agent explique chaque instruction : quel registre contient chaque argument, ce que fait la pile et où revient le résultat. write_file enregistre ces explications dans notes/begin.md. En Plan only, l'agent commence par lister ces étapes. Rien ne s'exécute encore. Passe ensuite en Ask first et lis le diff avant chaque enregistrement. Pour finir, compare les notes avec ton code et, si c'est légal, teste la fonction compilée en laboratoire.
Un bon exercice de rétro-ingénierie d'API consiste à lister les fonctions qu'expose ta propre bibliothèque et à noter ce que fait chaque argument. Enregistre en texte la liste des fonctions importées et exposées par ton propre outil, puis l'agent utilise grep pour trouver chaque appel à une fonction et read_file pour ouvrir les lignes autour. Il rédige un tableau dans notes/api.md, et edit_file montre chaque modification sous forme de diff. Commence par une seule fonction. La même méthode t'aide à retrouver le fonctionnement de ton propre ancien code. L'agent peut se tromper sur un type ou sur un rôle, alors compare chaque ligne avec ton code source et avec un test à toi avant de l'accepter.