IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Interpréter un fichier binaire


Sujet :

Assembleur

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 266
    Points : 161
    Points
    161
    Par défaut Interpréter un fichier binaire
    Bonjour,

    J'ai à ma disposition un fichier binaire et je souhaite savoir ce qu'il fait.
    pour cela j'utilise sous Linux objdump -d <monfichier>
    Ce que j'obtiens est interprétable mais je trouve plusieurs "sections". Sont-elles toutes utiles ? Avez-vous un tuto ou un lien simple pour utiliser objdump et savoir comment interpréter les résultats?

    Dernière question : Est-il possible de convertir le code assembleur en C ?

    Merci.

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour

    Ce que j'obtiens est interprétable mais je trouve plusieurs "sections". Sont-elles toutes utiles ?
    Toutes les sections sont utiles mais correpondent à diverses "fonctions" (une pour le code, une pour les données, etc.)

    Les fichiers exécutables sous linux sont au format ELF. Voilà un lien assez complet sur ce format :

    http://flint.cs.yale.edu/cs422/doc/ELF_Format.pdf

    Avez-vous un tuto ou un lien simple pour utiliser objdump et savoir comment interpréter les résultats?
    Pour objdump, le mieux est de regarder à sa page sur les binutils :

    http://www.gnu.org/software/binutils...inutils_4.html

    Dernière question : Est-il possible de convertir le code assembleur en C ?
    La réponse définitive est non, c'est impossible. Il existe qques programmes qui tentent une conversion mais le résultat est à tous les coups catastrophique et incompréhensible. Seul un opérateur humain est capable d'opérer une rétro-ingénierie de ce type sur un binaire.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 266
    Points : 161
    Points
    161
    Par défaut
    Merci beaucoup pour ces infos

    Une petite question :
    Lorsque je désassemble un binaire dont la source était écrite en C, j'obtiens systématiquement les même lignes d'instructions en assembleur au début du main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    push %ebp
    mov %esp,%ebp
    sub $0x18,%esp
    and $0xfffffff0,%esp
    mov $0x0,%eax
    add $0xf,eax
    add $0xf,eax
    shr $0x4,eax
    shl $0x4,eax
    sub %eax,%esp
    et je ne vois pas ce qu'elles font exactement...

  4. #4
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    - Les deux premières instructions calent le registre ebp sur le sommet de la pile, afin de pouvoir aller récupérer les paramètres empilés avant l'appel;

    - Les suivantes réservent sur la pile de l'espace pour des variables locales à la procédure.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 266
    Points : 161
    Points
    161
    Par défaut
    Bonjour,

    Ce code apparait dans la fonction main et dans toutes les autres procédures.

    Merci pour les renseignements.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lecture et interprétation d'un fichier binaire
    Par mad_dream dans le forum LabVIEW
    Réponses: 3
    Dernier message: 28/04/2010, 16h52
  2. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  3. [Debutant] Comment lire la taille d'un fichier binaire ?
    Par Invité dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 18/12/2003, 19h20
  4. communication fichier binaire fichier txt
    Par micdie dans le forum C
    Réponses: 3
    Dernier message: 05/12/2002, 00h19
  5. fichier binaire ou texte
    Par soussou dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/06/2002, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo