Bonjour,
je suis à la recherche d'une doc pour m'aider à comprendre un magazinne sur le reverse engeneering. L'objectif serait donc de comprendre rapidement les grandes lignes de l'ASM, pour mieux comprendre les outils dont il est question dans le magazinne ( des désassembleurs ).
Merci d'avance
__________________________
Aidez les autres membres en publiant sur le forum le code que nous vous avons aidé à créer ! Où sont les membres de MP ?
Hummm.... il y a dejà un post ouvert sur ce sujet... mais bon.
Ceci dit comprendre les grande lignes de l'ASM pour faire du RE ça risque quand-même de coûter un peu d'investissement.
Betov est un sécialiste de "la chose" je pense qu'il pourrait te faire gagner un temps précieux (joinds le directement ce sera plus simple...)..
__________________________ www.rosasm.org/ www.quanta-it.com/easbell/RosAsmForum
Pour Yougo,
Tous les langages quel qu'ils soient finissent tous par générer des instructions machines qui agissent sur les circuits électroniques de l'UC pour produire les résultats cherchés.
Un langage de haut niveau génère pour chaque instruction du langage plusieurs instructions machines. Il peut même faire appel sans que tu le sache à des procédures ( sous programmes) de plusieurs milliers d'instructions.
L'assembleur, permet de générer une ou plusieurs instructions, mais c'est le programmeur qui décide.
Il peut ainsi choisir de programmer instruction par instruction, ou appeler des macro-instructions qui sont des paquets pré-préparés paramétrables, ils peut appeler des procédures ou utiliser des includes.
Par exemple, il permet d'effectuer des traitements qui sont sont soit impossibles, soit difficiles à faire avec des langages de haut niveau tel que agir sur une mémoire qui contient une adresse vers une autre mémoire qui contient une adresse,..etc.
Autre exemple, les nombres réels sont sur 4 ou 8 octets pour les langages de haut niveau. En assembleur on dispose de nombres réels sur 10 octets.
Par ailleurs les compilateurs de langages de haut niveau fabriquent des programmes exécutables qui n'utilisent qu'une petite partie des possibilités qu'offre le jeu d'instructions du micro-processeur.
J'ai fait souvent l'experience de demander au FORTRAN de me produire le code assembleur qu'il génére. Un programmeur en assembleur qui programmerait comme cela serait au minimum traité de maladroit.
Le desassembleur part du code binaire et reconstruit les instructions machines.
Les dé-assembleurs n'ont pas tous le même niveau de qualité.
Pour les meilleurs on obtient quelque chose de proche de ce qui aurait pu être programmé.
Pour d'autres, il faut ensuite faire un réel effort pour retrouver le programme tel qu'il aurait pu être programmé à l'origine.
J'espèe t'avoir donné les éléments de base. Si tu veux des précisions n'hésite pas à les demander.
__________________________
Si tu n'a pas trouvé la réponse sur MoteurProg...
mais que tu l'as trouvé ailleurs...
Merci de la donner sur MoteurProg.
Moby
[quote]
Par exemple, il permet d'effectuer des traitements qui sont sont soit impossibles, soit difficiles à faire avec des langages de haut niveau tel que agir sur une mémoire qui contient une adresse vers une autre mémoire qui contient une adresse,..etc.
[/quote]
La programmation objet (puisque c'est un peu ce que tu décris) est tout à fait possible avec des HLL comme le C++ (tout à fait au hasard).
Je comprends l'effort pédagogique (merci Moby) mais serait-il possible Yougo que tu précises le sens de ta question. Le RE est un domaine très très très vaste...
Que cherches-tu plus précisément à saisir et qu'est-ce qui te pose problème.
Y a t'il des points particuliers etc.
Il est possible de te fournir toutes les docs que tu veux mais à condition de préciser le lieu de la difficulté. Si le fait de savoir que l'ASM c'est assembler des instructions de base et désassembler les réafficher suffit... la difficulté n'est pas très grande.. Par contre si c'est les méthodes d'analyses (un peu comme un compilateur à l'envers pour caricaturer) qui t'intéresse il faudra un peu plus de place.
Donc si tu pouvais préciser ta question qui est extrêmement vaste cela simplifierait beaucoup le travail de ceux qui te répondront.
Je crois avoir trouvé quelques documentations sur le sujet. Je vous tiendrai au courant
__________________________
Aidez les autres membres en publiant sur le forum le code que nous vous avons aidé à créer ! Où sont les membres de MP ?
Yougo, tu vas probablement perdre ton temps. Il n'existe, à ma connaissance, aucune documentation sérieuse sur le désassemblage (ça se saurait...). Comme d'habitude, les gens qui écrivent les Désassembleurs ne sont pas ceux qui publient des Papiers sur le sujet.
Effectivement, il faut commencer par apprendre l'Assembleur. Et il n'existe qu'un seul moyen d'apprendre l'Assembleur, c'est d'écrire, au moins, une paire de petits programmes en Assembleur.
Ensuite, pour le désassemblage lui-même, une fois le language Assembleur connu dans ses bases (peu de chose vraiment nécessaires...), c'est à la fois assez simple, pour ce qui est de la base (de lecture), et d'une complication sans fin pour ce qui concerne la compréhensions générale d'une Fonction. Tout dépend... Quel type d'éxécutable, quel language de programmation utilisé pour compiler l'Application désassemblée, etc...
En gros, "comprendre rapidement les grandes lignes de l'ASM", c'est très facile, mais "comprendre les outils dont il est question", c'est pas gagné d'avance.
Rémi, c'est une question que je me pose de temps en temps... Serait-il vraiment utile de rédiger un papier sur le désassemblage. Je ne vois pas trop comment aborder le problème, étant donné, d'une part, le nombre invraissemblable de choses qu'il y aurait à expliquer, et, d'autre part, le fait que les lecteurs qui pourraient être intérressés par ce genre de document, ne connaissent 99 fois sur 100, rien à l'Assembleur... alprs que ceux qui savent de quoi ça parle, n'ont pratiquement aucun besoin d'un tel Papier...
Un "truc" que je ferai peut-être un jour sera d'écrire un descriptif des _Méthodes_ employées dans le Désassembleur de RosAsm, mais ça risque d'être aussi "productif" que "contre-productif", dans le sens où l'on verra, comme d'habitude, une dixaine de Projets Anti-GPLs surgir tous les ans... Même sans descriptif, "l'autre escroc" (tu vois qui je ne veux pas dire...:))))) était déjà prêt à démarrer un de ses"coup" habituels sur Pdf, après avoir été scotché par le Désassembleur-Ré-Assembleur de RosAsm... Qu'est-ce que ça va être si je livre tout ça publiquement (!?...).
Je partage, ce que tu dis et pas que sur l’auteur… d’H--
Seulement, les responsables de MP et plusieurs participants à venir, seraient certainement heureux d'avoir quelques articles de qualité sur l'ASM, rédigés par quelqu'un qui maîtrise son sujet (je veux dire : Qui à mis en pratique ce qu’il dit dans un projet conséquent et accessible à tous).
Ne serait-ce que pour aider Moby (qui, est de bonne volonté, j'en suis personnellement convaincu) à relever le niveau. De plus cela permettrait d’expliquer autre chose que les méthodes de piratage (intéressantes, certes, mais pas très utiles dans la vie de tous les jours…).
Préciser la différence entre HHL et ASM (je sais que ça peut faire sourire.. mais tu l’auras constaté, hélas souvent : Plusieurs se mélange les compilateurs dans leur propos). Tu as aussi remarqué les aberrations qui sont répétées, colportées, par totale ignorance des faits. Je ne te parle pas de l’explosion des ASM depuis quelque temps… ça n’a pas l’air de faire réfléchir grand monde et personne n’établit de lien avec les enjeux contenus dans l’élaboration, sérieuse, d’une simple liste des (nouveaux) outils existants.
De plus c'est un excellent moyen pour tous les codeurs (quels que soient les outils et le « langage » utilisés) de se poser les vraies questions, de mettre en route une réflexion sur ce que veux dire Bottom-Up (l'inverse étant l’irrationnel habituel que je n'arrive toujours pas à m’expliquer... ).
Donc, sans forcément livrer des secrets de fabrication, qui sont n'importe comment dans le source de RosAsm et disponibles pour tous les gars sérieux, la vulgarisation (qui est un peu de contenu pour une fois) ferait n'importe comment du bien à chacun d'entre-nous.
En plus, Betov in french… j’avoue que c’est bien aussi