Inscription : 20 Août 2007, 18:21 Message(s) : 4998
1) Sauvegarder en un fichier binaire le contenu de la mémoire : pour le jeu HATE de notre exemple de &0000 -> &8000
2) Chargement du binaire sous IDA, menu "File" puis "Open file" :
3) selection du processeur: pour nous Z80
4) sélection l'adresse basse de la mémoire a désassembler, pour nous pas touche, c'est 0x00000000
5) Une fois les données charger par IDA, rendez vous au point d'entrée du code , ici 76DB pour H.A.T.E de notre exemple... utiliser la touche "G" pour afficher la fenêtre de dialogue
6) Votre curseur ce trouve en &76DB
7) Lancer le désassemblage avec la touche "C", et bingo !
9) Les possibilités d'IDA: ici en 770C, transformer le "LD HL,7699h" en "LD HL,LABEL"
10) Pointer le 7699h avec votre curseur, et utiliser la touche "O" :
11) Pointer un label au hazard et utiliser la touche "X" (Références) :
12) Rendez vous en &39 (touche "G") et utiliser la touche "D" pour transformer un DB en DW
13a) Maintenant vous pouvez désassembler la suite du code en &70EA...
13b) Ca ne suffit toujours pas, lancer le jeu ou la demo sous WINAPE, puis breaker le code avec touche F8, toujours sous WINAPE. Je tombe en &58DE, rendez-vous a cette adresse sous IDA pour dessassembler la suite du code ...
14) Autres possibilités d'IDA: renommer un LABEL, ici en &72F4
15) Touche "N" :
16) Explorer le code désassembler et chercher les endroits ou le code n'est pas "sourcer" comme ici, IDA bloque sur le code qui s'auto-modfiei..:
17) Forcer le désassemblage avec la touche "C"
18) Autres vérification a faire: les "JUMPTABLE" , utiliser par JP (HL), JP (IX)....
19) Ici le poids fort est pointer par H , avec H= 53, rendez-vous en &5300 avec la touche "G"
20) Transformer les DB (BYTE) en DW (WORD) avec la touche "D" , vous pouvez également ajouter un commentaire une directive pour le future re-assemblage avec le touche ";" (commentaires) :
21) Pour rendre les datas plus lisible dans votre source utiliser la touche "*", pour créé un tableau de DB ou DW:
euh, et ça reconstituerai pas les "rem" par hasard ?
Après c'est avant tout axé Z80.
Serait il possible d'ajouter un plug-in afin d'avoir quelques trucs spécifiquement CPC, genre un générateur de "rem" justement ?
en gros, marqué les interventions vers les éléments du CPC genre le CRTC, l'AY, etc... bon il doit suffire de focaliser (mettre en couleur) des combos mnémonique+addresse il est vrai.
Et pour vous qui pratiquez déjà l'assembleur CPC ça vous parle forcément mieux.
Intéressant tout ça. J'ai eu besoin de désassembler il y a pas longtemps un binaire de 16ko en assembleur Z80, et après avoir vainement cherché un soft bien adapté, j'ai fini par le faire avec le désassembleur de Winape (pas génial, mais bon... ). Cet outil a l'air de correspondre à ce que je cherchais à l'origine, c'est un dire un désassembleur qui "sorte" à la fois l'adresse absolu de la ram désassemblée, le contenu de la ram et la traduction Z80. Je vais essayer de m'en servir pour un autre petit projet (pas du CPC, désolé ).
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 5 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum