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

x86 32-bits / 64-bits Assembleur Discussion :

Recherche d'un simple décompilateur/désassembleur


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut Recherche d'un simple décompilateur/désassembleur
    je suis a la recherche d'un simple petit décompilateur parce que j'ai malencontreusement effacé le code source d'un de mes programme que j'avait écrit il y as quelque mois

    il s'agit d'un petit bout de code qui était chargé de vérifier la position de chargement du code et d'éventuellement corriger ça en le recopiant au bon endroit, c'est pas très compliqué a faire sauf pour récupérer l'adresse exact d'exécution du code et je ne me souvient plus quel méthode j'avais employé (avec un call et la récupération de l'adresse de retour sur la pile je crois)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    E800000E6631C06631DB585B66C1E0046601D86683E803663D0000050074236689C66683E60F66C1E8048ED831FFB800508EC0B90080F3A4B90080F3A4EA42000050
    donc si vous aviez un décompilateur a me conseiller je suis preneur

  2. #2
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    bon finalement j'ai retrouvé le code perdu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    org 0h
    call enregistre_ip ;empile ip et fait un saut nul
    enregistre_ip:
    push cs
    xor eax,eax
    xor ebp,ebp
    pop ax
    pop bp
    shl eax,4
    add ebp,eax
    sub ebp,enregistre_ip     ;ebp pointe désormais sur le premier octet du programme (adresse absolue)
     
    cmp ebp,50000h   ;la position ou devrait se trouver le programme
    je position_code_ok
     
    mov eax,ebp    ;déplace le code au bon endroit
    mov esi,ebp
    shr eax,4
    and esi,0Fh
    mov ds,ax
    xor di,di
    mov ax,5000h
    mov es,ax
    mov cx,8000h
    rep movsb
    mov cx,8000h
    rep movsb
    jmp 5000h:position_code_ok
     
    position_code_ok:
    mais je suis toujours interessé si vous conaissez un bon décompileur

  3. #3
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 215
    Points : 10 138
    Points
    10 138
    Par défaut
    Pour le x86 pas forcément , mais tu peux regardé ici : https://en.wikibooks.org/wiki/X86_Di..._Disassemblers

    Sinon si tu as un format elf est que tu utilise GCC alors il y'a la command objdump -d monbinaire

    Sinon il y'en a un online : https://www.onlinedisassembler.com/odaweb/fICJAz1i/0
    Pour du i386 il donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
                               .data:00000000 e8 00 00 0e 66                   call   0x660e0005
                               .data:00000005 31 c0                            xor    eax,eax
                               .data:00000007 66 31 db                         xor    bx,bx
                               .data:0000000a 58                               pop    eax
                               .data:0000000b 5b                               pop    ebx
                               .data:0000000c 66 c1 e0 04                      shl    ax,0x4
                               .data:00000010 66 01 d8                         add    ax,bx
                               .data:00000013 66 83 e8 03                      sub    ax,0x3
                               .data:00000017 66 3d 00 00                      cmp    ax,0x0
                               .data:0000001b 05 00 74 23 66                   add    eax,0x66237400
                               .data:00000020 89 c6                            mov    esi,eax
                               .data:00000022 66 83 e6 0f                      and    si,0xf
                               .data:00000026 66 c1 e8 04                      shr    ax,0x4
                               .data:0000002a 8e d8                            mov    ds,eax
                               .data:0000002c 31 ff                            xor    edi,edi
                               .data:0000002e b8 00 50 8e c0                   mov    eax,0xc08e5000
                               .data:00000033 b9 00 80 f3 a4                   mov    ecx,0xa4f38000
                               .data:00000038 b9 00 80 f3 a4                   mov    ecx,0xa4f38000
                               .data:0000003d ea                               .byte 0xea
                               .data:0000003e 42                               inc    edx
                               .data:0000003f 00 00                            add    BYTE PTR [eax],al
                               .data:00000041 50                               push   eax

  4. #4
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    mais en le mettant en mode i8086 le résultat est très correct comparé au source de bifur

  5. #5
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    effectivement le code que voulait décompiler était pour du mode réel alors il fallait bien régler les paramètre sur 8086. mais personnellement j'aurait plutôt utilisé "real mode", "protected mode", et "long mode" pour designer les mode de fonctionnement mais sinon il est pas mal ce désassembleur en ligne!

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

Discussions similaires

  1. recherche script galerie simple
    Par jul.oob dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/04/2007, 15h14
  2. Recherche d'exercices simples pour formation Java
    Par habasque dans le forum Langage
    Réponses: 3
    Dernier message: 30/03/2007, 00h39
  3. Réponses: 11
    Dernier message: 12/12/2006, 01h53
  4. Recherche d'exercices simples
    Par yassinebob dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 01/11/2006, 22h12
  5. [Framework] Recherche d'exemple simple
    Par anaon dans le forum Spring
    Réponses: 4
    Dernier message: 26/04/2006, 17h08

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