Comment faire un desassembleur ?

Greg159357 Messages postés 112 Date d'inscription lundi 21 octobre 2013 Statut Membre Dernière intervention 4 janvier 2014 - 21 déc. 2013 à 17:20
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 - 26 déc. 2013 à 17:46
Bonjour,
pouvez vous me donner un algorithme qui permet de désassembler un code .com en NASM ? Ou alors me donner un tableau avec les instructions intel 32 et me dire comment faire pour désassembler un .com avec. Je précise que ce n'est pas pour modifier/voir le code source d'un programme dont je ne suis pas l'auteur. Je veux juste faire sur mes programmes avec celui ci un désassemblage, une optimisation du code, et un ré-assemblage.

Merci d'avance.

6 réponses

ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 1
24 déc. 2013 à 02:26
Bonjour,

Les manuels Intel sont disponibles en ligne. Ils te permettront d'avoir une liste complète des instructions à désassembler. Pour la méthode, tu peux te référer à ceci : http://stackoverflow.com/a/924445

Attention toutefois : un .com est supposé contenir seulement des instructions 16 bit, c'est déjà bien plus facile à gérer. Pourquoi parles-tu de 32 bit ?
0
Greg159357 Messages postés 112 Date d'inscription lundi 21 octobre 2013 Statut Membre Dernière intervention 4 janvier 2014
24 déc. 2013 à 15:47
Désolé, je ne savais pas que le 32 en .com n'existais pas. Mais en fait, je parle des fichiers d'un système d'exploitation, et je me disait que c'était la même chose, car un .com est fait pariel il me semble.
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 1
25 déc. 2013 à 01:50
Un .com sous DOS (le vrai, hein, pas cmd qui est souvent confondu avec DOS) est "directement exécutable" : pas de relocation, pas de segments différents...

Pour les fichiers de l'OS (si c'est Windows), tu devras d'abord comprendre le format d'un EXE...
0
Greg159357 Messages postés 112 Date d'inscription lundi 21 octobre 2013 Statut Membre Dernière intervention 4 janvier 2014
25 déc. 2013 à 22:33
Je voulais parler des fichier qui bootent au démarrage de l'ordinateur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Greg159357 Messages postés 112 Date d'inscription lundi 21 octobre 2013 Statut Membre Dernière intervention 4 janvier 2014
26 déc. 2013 à 14:13
Vous voulez dire qu'un .com contient que des op codes ?
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 1
26 déc. 2013 à 17:46
Des instructions, pour être plus général... Dans du langage machine, il y a bien sûr des opcodes pour les instructions mais il ne faut pas oublier les données qui vont avec : mov ax, 42 c'est l'instructions pour dire de mettre une constante dans ax, la constante est précisée après l'opcode.

"fichiers qui bootent au démarrage..." : ça n'a pas de sens. C'est l'ordinateur qui boote, pas les fichiers. Puis au tout début, il n'est pas question de fichiers : le MBR est lu et exécuté (le format est dispo sur le Net) et c'est lui qui se débrouille pour chercher dans le système de fichiers un fichier qui chargera tout le reste (ça marche à peu près toujours comme ça).

Si tu veux comprendre comment fonctionne un OS, il y a des mini-OS qui existent sur le Net, avec leurs sources, une documentation... c'est bien plus facile que de désassembler une partie de Windows. (Les premières versions de Linux sont aussi disponibles.)
0
Rejoignez-nous