CPC Rulez https://cpcrulez.fr/forum/ |
|
Désassembleur https://cpcrulez.fr/forum/viewtopic.php?f=4&t=6583 |
Page 1 sur 1 |
Auteur : | fma38 [ 11 Sep 2021, 09:49 ] |
Sujet du message : | Désassembleur |
Hello, Quel désassembleur pour linux me conseillez-vous, permettant de travailler sur un gros fichier binaire (dump mémoire) ? Il faut qu'on puisse lui dire à quelle adresse est théoriquement chargé le code, et j'aimerais qu'il puisse déssasembler à partir de n'importe quelle adresse (offset)... Merci d'avance. |
Auteur : | marcel [ 11 Sep 2021, 11:44 ] |
Sujet du message : | Re: Désassembleur |
dans le package Arkos Tracker 2 il y a un sous-répertoire tools avec Dizark qui devrait faire ce que tu veux https://www.julien-nevo.com/arkostracke ... /download/ |
Auteur : | fma38 [ 11 Sep 2021, 12:01 ] |
Sujet du message : | Re: Désassembleur |
Je viens de tester : on ne peux pas lui dire de désassembler à partir d'un certain offset, et le code généré n'est pas très beau... J'aime bien le code généré par RetroVirtualMachine, mais le truc con, c'est qu'on ne peux ni faire de copier/coller, ni rediriger la sortie dans un fichier ! C'est balo. |
Auteur : | krusty [ 12 Sep 2021, 08:17 ] |
Sujet du message : | Re: Désassembleur |
Bonjour, caché dans ce dépôt : https://github.com/cpcsdk/rust.cpclib j'ai un désassembleur. Voici les options qu'ils accèpte (je peux en ajouter ou intégrer des patchs qui en ajoutent): Code : USAGE: bdasm [FLAGS] [OPTIONS] <INPUT> FLAGS: -c, --compressed Output a simple listing that only contains the opcodes -h, --help Prints help information -V, --version Prints version information OPTIONS: -d, --data <DATA_BLOC>... Relative position that contains data for a given size. Format: RELATIVE_START(in hexadecimal)-SIZE(in decimal) -l, --label <LABEL>... Set a label at the given address. Format LABEL:ADDRESS(in hexadecimal -o, --origin <ORIGIN> Disassembling origin (ATTENTION hexadecimal only) -s, --SKIP <SKIP> Skip the first <SKIP> bytes ARGS: <INPUT> Input binary file to disassemble. et voici un fragment de résultat obtenu sur un fichier de test : Code : SUB IYH SUB IYL XOR IXH DB 0xdd,0xad,0xfd,0xac HERE XOR IYL avec les options suivantes : Code : cpclib-asm/tests/asm/good_all.bin -o 100 -s 7 -l HERE:76b -d 667-4 -c Comme l'ensemble de mon projet n'est toujours pas dans un état suffisement stable pour être diffusé en masses, je n'ai pas de binaire à télécharger sur le dépot, donc le voici en piece jointe. il est possible qu'il y ai des bugs (notement en ce qui concerne les addresses relatives) |
Auteur : | fma38 [ 13 Sep 2021, 19:13 ] |
Sujet du message : | Re: Désassembleur |
Merci pour ta réponse (que je n'avais pas vue, faute de notification de la part du moteur du forum)... Bon, ça ne tourne malheureusement pas chez moi, car je n'ai que la libc 2.32, et tu as compilé avec la 2.33 ! Zarbi, je suis pourtant en debian sid à jour... Peux-tu m'envoyer ton source, que j'essaye de le compiler ? Merci d'avance. |
Auteur : | krusty [ 14 Sep 2021, 06:31 ] |
Sujet du message : | Re: Désassembleur |
Voici la procédure pour le construire : Code : git clone https://github.com/cpcsdk/rust.cpclib.git cd rust.cpclib cargo +nightly build --bin bdasm --features=bdasm J'imagine que si tu n'as pas git, le lien suivant fournit les fichiers https://github.com/cpcsdk/rust.cpclib/a ... master.zip L'executable étant ensuite dans Code : target/debug/bdasm Naturellement, il faut en pré-requis la chaine de compilation rust (version nightly, pas version stable) : Code : curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # installe rust et peux être modifie le PATH dans bashrc pour accéder aux outils
rustup toolchain install nightly # après prise en compte de la modification de PATH |
Auteur : | fma38 [ 14 Sep 2021, 07:32 ] |
Sujet du message : | Re: Désassembleur |
Merci pour les explications. Malheureusement, je tombe sur une erreur, liée à openssl : Code : run pkg_config fail: "`\"pkg-config\" \"--libs\" \"--cflags\" \"openssl\"` did not exit successfully: exit status: 1\n--- stderr\nPackage openssl was not found in the pkg-config search path.\nPerhaps you should add the directory containing `openssl.pc'\nto the PKG_CONFIG_PATH environment variable\nNo package 'openssl' found\n" Comment corriger ça ? Je ne connais rust que de loin (un copain du hackerspace s'y est mis, l'année dernière)... |
Auteur : | krusty [ 14 Sep 2021, 13:33 ] |
Sujet du message : | Re: Désassembleur |
Je suppose qu'il faut installer openssl-dev ou quelque chose qui ressemble à ça pour avoir les .h de openssl. (Mais ici c'est plus une erreur de compilation C, pour une dépendance, que de compilation rust ) edit: d'après cette page, c'est libssl-dev qu'il faut installer |
Auteur : | fma38 [ 14 Sep 2021, 16:28 ] |
Sujet du message : | Re: Désassembleur |
C'est bon, ça a compilé ! Merci |
Auteur : | GurneyH [ 19 Sep 2021, 12:34 ] |
Sujet du message : | Re: Désassembleur |
Ou encore ici https://github.com/sikorama/z80-smart-disassembler C'est un peu plus qu'un désassembleur car il suit le chemins de code pour faire la différence entre code et data. Il accepte également plusieurs adresses d'entrée https://github.com/sikorama/z80-smart-disassembler |
Auteur : | fma38 [ 19 Sep 2021, 15:14 ] |
Sujet du message : | Re: Désassembleur |
Je l'avais déjà testé, mais pas réussi à obtenir grand chose. Dommage, car effectivement, faire la différence entre code et data, c'est plutôt cool. Pour info, j'ai commencé à développer mon propre désassembleur, en Python, en me basant sur la librairie tzxlib de Richard "Shred" Körbe : https://github.com/shred/tzxtools/tree/master/tzxlib C'est Orienté Objet, donc facilement extensible. Par exemple, on peut écrire son propre formateur, pour sortir les données comme on veut (ordre, casse, couleurs...). J'ai déjà écrit un formateur type DAMS : Pièce jointe : Z80dis sample.png Bien qu'il soit déjà totalement utilisable, j'ai encore des choses à améliorer pour qu'il soit facilement maintenable. Je le mettrai sur Framagit dans un moment, mais je peux déjà l'envoyer à ceux qui veulent le tester. D'ailleurs, je suis preneur d'idées de formatage pour écrire d'autres formateurs, et voir ainsi si l'architecture du code tient la route ou non. Et si vous avez des besoins spécifiques, je peux toujours essayer de voir si j'arrive à les intégrer. |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |