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 :

Décompilation d'un code Delphi


Sujet :

Assembleur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 51
    Points : 6
    Points
    6
    Par défaut Décompilation d'un code Delphi
    J'aurai besoin d'aide pour comprendre ce code.
    Je sais que c'est du Delphi mais je ne conais pas le Delphi du tout.
    Le programme contient 3 case, clé1 clé2 et retourne une clé résultat.
    j'essaie de comprendre mais je n'arrive pas a convertir ce code en VB.net.
    Normal étant donnée que je ne comprend pas du tout ce qu'il fait
    Merci d'avance pour l'aide.

    Code asm : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    00430ADC   55                     push    ebp
    00430ADD   8BEC                   mov     ebp, esp
    00430ADF   83C4E8                 add     esp, -$18
    00430AE2   53                     push    ebx
    00430AE3   56                     push    esi
    00430AE4   57                     push    edi
    00430AE5   33C9                   xor     ecx, ecx
    00430AE7   894DEC                 mov     [ebp-$14], ecx
    00430AEA   894DE8                 mov     [ebp-$18], ecx
    00430AED   8955F0                 mov     [ebp-$10], edx
    00430AF0   8945FC                 mov     [ebp-$04], eax
    00430AF3   33C0                   xor     eax, eax
    00430AF5   55                     push    ebp
     
    * Possible String Reference to: 'é8#ýÿëë_^[‹å]Í@'
    |
    00430AF6   68870B4300             push    $00430B87
     
    ***** TRY
    |
    00430AFB   64FF30                 push    dword ptr fs:[eax]
    00430AFE   648920                 mov     fs:[eax], esp
    00430B01   8D55E8                 lea     edx, [ebp-$18]
    00430B04   8B45FC                 mov     eax, [ebp-$04]
     
    * Reference to control TFrm_Main.Serie : TMaskEdit
    |
    00430B07   8B80C4010000           mov     eax, [eax+$01C4]
     
    |
    00430B0D   E8C6DFFFFF             call    0042EAD8
    00430B12   8B45E8                 mov     eax, [ebp-$18]
    00430B15   8D55EC                 lea     edx, [ebp-$14]
     
    |
    00430B18   E89749FDFF             call    004054B4
    00430B1D   8B45EC                 mov     eax, [ebp-$14]
    00430B20   8D55F4                 lea     edx, [ebp-$0C]
     
    |
    00430B23   E8181DFDFF             call    00402840
    00430B28   8945F8                 mov     [ebp-$08], eax
    00430B2B   8D55E8                 lea     edx, [ebp-$18]
    00430B2E   8B45FC                 mov     eax, [ebp-$04]
     
    * Reference to control TFrm_Main.CodeSt : TMaskEdit
    |
    00430B31   8B80C8010000           mov     eax, [eax+$01C8]
     
    |
    00430B37   E89CDFFFFF             call    0042EAD8
    00430B3C   8B55E8                 mov     edx, [ebp-$18]
    00430B3F   8D4DEC                 lea     ecx, [ebp-$14]
    00430B42   8B45F8                 mov     eax, [ebp-$08]
     
    |
    00430B45   E83AFEFFFF             call    00430984
    00430B4A   8B55EC                 mov     edx, [ebp-$14]
    00430B4D   8B45FC                 mov     eax, [ebp-$04]
     
    * Reference to control TFrm_Main.CodeD : TEdit
    |
    00430B50   8B80CC010000           mov     eax, [eax+$01CC]
     
    |
    00430B56   E8B1A6FEFF             call    0041B20C
    00430B5B   8B45FC                 mov     eax, [ebp-$04]
     
    * Reference to control TFrm_Main.Serie : TMaskEdit
    |
    00430B5E   8B90C4010000           mov     edx, [eax+$01C4]
    00430B64   8B45FC                 mov     eax, [ebp-$04]
     
    |
    00430B67   E82C4EFFFF             call    00425998
    00430B6C   33C0                   xor     eax, eax
    00430B6E   5A                     pop     edx
    00430B6F   59                     pop     ecx
    00430B70   59                     pop     ecx
    00430B71   648910                 mov     fs:[eax], edx
     
    ****** FINALLY
    |
     
    * Possible String Reference to: '_^[‹å]Í@'
    |
    00430B74   688E0B4300             push    $00430B8E
    00430B79   8D45E8                 lea     eax, [ebp-$18]
    00430B7C   BA02000000             mov     edx, $00000002
     
    |
    00430B81   E8DE26FDFF             call    00403264
    00430B86   C3                     ret
     
    00430B87   E93823FDFF             jmp     00402EC4
    00430B8C   EBEB                   jmp     00430B79
     
    ****** END
    |
    00430B8E   5F                     pop     edi
    00430B8F   5E                     pop     esi
    00430B90   5B                     pop     ebx
    00430B91   8BE5                   mov     esp, ebp
    00430B93   5D                     pop     ebp
    00430B94   C3                     ret
     
     
     
     
     
     
     
     
     
    00430ADC   55                     push    ebp
    00430ADD   8BEC                   mov     ebp, esp
    00430ADF   83C4E8                 add     esp, -$18
    00430AE2   53                     push    ebx
    00430AE3   56                     push    esi
    00430AE4   57                     push    edi
    00430AE5   33C9                   xor     ecx, ecx    10110001 Xor 01100110 = 11010111
    00430AE7   894DEC                 mov     [ebp-$14], ecx
    00430AEA   894DE8                 mov     [ebp-$18], ecx
    00430AED   8955F0                 mov     [ebp-$10], edx
    00430AF0   8945FC                 mov     [ebp-$04], eax
    00430AF3   33C0                   xor     eax, eax
    00430AF5   55                     push    ebp

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 299
    Points
    11 299
    Billets dans le blog
    6
    Par défaut
    Lignes 31, 36, 41 (entre autres) : appels en dehors du code fourni.

    Il n'est donc pas commode (outre les aspects philosophiques) de t'aider dans ta demande de désassemblage de ce qui ressemble à une protection logicielle.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 51
    Points : 6
    Points
    6
    Par défaut Je comprend
    Je n'ai donc pas tout le code que j'ai besoins pour comprendre. Une simple description de ce que fait chacune des fonctions me serait pratique pour apprentisage personnel. Exemple XOR...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 51
    Points : 6
    Points
    6
    Par défaut Suite
    Pour préciser, le programme génère une clé à partir des 2 champ entré.
    J'avoue ça peu paraître louche à bien y penser. Mais on est propriétaire du programme.
    Je dois refaire ça en vb.net. Ça aiderais si je comprenais le code.
    Comprendre chaque zone sert a quoi.

  5. #5
    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
    Il n'y a rien dans ce code qui fasse autre chose que déplacer des données de manière basique
    il y a bien des appels de fonctions (tous les call) mais extérieures à ce code

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 51
    Points : 6
    Points
    6
    Par défaut Voici ce que j'obtiens avec un autre logiciel
    Bon, j'ai recherché un peu et je crois avoir trouvé tout ce qu'il faut.
    Voici ce que j'ai maintenant, il me manquait des trucs.

    uN AUTRE DÉCOMPILATEUR EN LIGNE ME DONNE CA:
    http://pastebin.com/UnsptEwd
    Le code refuse de copier au complet.
    On peu m'expliquer pourquoi certain décompilateur me donne 160000 ligne de code et d'autre moins de 100?

  7. #7
    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
    Désolé, mais un tel programme sorti tout droit d'un décompilateur demanderait des heures d'analyse pour arriver (peut-être) au résultat.
    ça m'étonnerait que tu trouve quelqu'un ... qui n'a que ça à faire

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 51
    Points : 6
    Points
    6
    Par défaut ok
    Comment un si petite programme peut-il prendre autant de code lol.
    Surtout qu'on décompilateur à l'autre le résultat est totalement différent.
    Certain me donnais de bon résultat mais ne permettent pas de fare de copier coller du résultat.
    Un conseil sur comment procéder?

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 51
    Points : 6
    Points
    6
    Par défaut Je crois avoir trouve de quoi
    Avec ida, j<ai fouill/ un peu partout sans vraiment savoir ce que je fesais.
    Je suis tombe sur ce bout de code qui je crois pourais bien contenir la metode utilise pour donner le nombre resultant.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    int __usercall sub_4013B0<eax>(int a1<eax>, int a2<edx>, int a3<ecx>)
    {
      int v3; // esi@1
      int v4; // edi@1
      int v5; // ebx@1
      int result; // eax@7
     
      v3 = a3;
      v4 = a1;
      v5 = *(_DWORD *)a1;
      *(_DWORD *)a3 = *(_DWORD *)a2;
      *(_DWORD *)(a3 + 4) = *(_DWORD *)(a2 + 4);
      do
      {
        if ( *(_DWORD *)(v5 + 12) + *(_DWORD *)(v5 + 8) == *(_DWORD *)v3 )
        {
          sub_4013A4();
          *(_DWORD *)v3 = *(_DWORD *)(v5 + 8);
          *(_DWORD *)(v3 + 4) += *(_DWORD *)(v5 + 12);
        }
        else
        {
          if ( *(_DWORD *)(v5 + 8) == *(_DWORD *)(v3 + 4) + *(_DWORD *)v3 )
          {
            sub_4013A4();
            *(_DWORD *)(v3 + 4) += *(_DWORD *)(v5 + 12);
          }
        }
        v5 = *(_DWORD *)v5;
      }
      while ( v4 != v5 );
      result = sub_401374(a3, v3);
      if ( !(_BYTE)result )
      {
        result = 0;
        *(_DWORD *)v3 = 0;
      }
      return result;
    }
    Aimerais comprendre ce que ce code fait.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 51
    Points : 6
    Points
    6
    Par défaut Des conseils
    J'aimerais des conseils sur comment résoudre mon problème. =:0(

Discussions similaires

  1. Décompilation d'un code Delphi
    Par XGuarden dans le forum Delphi
    Réponses: 3
    Dernier message: 15/09/2014, 17h52
  2. Convertion code Delphi.net vers C#
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 31/03/2006, 21h08
  3. [D2006] Code delphi et c#
    Par the big ben 5 dans le forum Langage
    Réponses: 10
    Dernier message: 13/03/2006, 09h48
  4. code Delphi pour créer des sources ODBC
    Par lassad dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/10/2005, 11h18
  5. Portabilité de code Delphi
    Par ludovic tambour dans le forum EDI
    Réponses: 2
    Dernier message: 20/08/2005, 16h14

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