WinImage 5.00.5000By alien
|
objet : winimage version 5.00 outils : Softice
Wdasm ( pour les références )
calculatrice hexa
bloc, bic, feutre,.........
Vérification avant de commencer; touches F10 et F8 en bon état ok;
stock valium ok; personne dans le coin pour nous déranger ok; on peut y aller. :0042F08D FFD6 call esi :0042F08F BF183D4400 mov edi, 00443D18 ici eax = 5, ebx = alien * Possible Ref to Menu: WINIMAGMENU, Item: "Create directory..."
|
:0042F094 6A7F push 0000007F
:0042F096 57 push edi
* Possible Reference to Dialog: REGISTER, CONTROL_ID:0817, ""
|
:0042F097 6817080000 push 00000817
:0042F09C FF7508 push [ebp+08]
:0042F09F FFD6 call esi
de nouveau 9 fois F12 après le passage sur ce call et eax = 6, edi = 123456 :004346E8 FF154C694400 Call dword ptr [0044694C] transformation du nom entré alien devient ALIEN tiens donc voilà déjà qu'il n'est pas d'accord avec ce qu'on lui a donné ben on va faire avec, on continue a tracer ( le doigt léger sur F10 et F8 ) et je vous laisse le soin de voir ce qui se passe en cours de route pour finalement arriver sur une routine plus qu'intéressante ici : :0043473F 8BC1 mov eax, ecx :00434741 6A0E push 0000000E :00434743 99 cdq :00434744 5B pop ebx :00434745 F7FB idiv ebx :00434747 85D2 test edx, edx :00434749 7503 jne 0043474E :0043474B 6A27 push 00000027 :0043474D 5F pop edi............................edi = 27 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00434749(C) | :0043474E 0FB6540E03 movzx edx, byte ptr [esi+ecx+03]....edx = 41 :00434753 8D4103 lea eax, dword ptr [ecx+03] :00434756 0FAFD7 imul edx, edi :00434759 0155FC add dword ptr [ebp-04], edx :0043475C 6A0E push 0000000E :0043475E 99 cdq :0043475F 5B pop ebx :00434760 F7FB idiv ebx :00434762 85D2 test edx, edx :00434764 7405 je 0043476B :00434766 8D3C7F lea edi, dword ptr [edi+2*edi] :00434769 EB03 jmp 0043476E * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00434764(C) | :0043476B 6BFF07 imul edi, 00000007 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00434769(U) | :0043476E 41 inc ecx......................au départ ecx = 0 :0043476F 3B4D08 cmp ecx, dword ptr [ebp+08].........ebp+08 = 5 :00434772 7CCB jl 0043473F voilà on est dedans on va se relaxer ( c'est le moment du valium, avec un
doigt de rhum ca relaxe bien ) et on va essayer de détailler ce que fait cette routine. pour edi : pour edx : 1 = 27 41*27 = 9E7 2 = 27+2*27 = 75 4C*75 = 22BC 3 = 75+2*75 = 15F 49*15F = 6417 4 = 15F+2*15F = 41D 45*41D = 11BD1 5 = 41D+2*41D= C57 4E*C57 = 3C282 on peut donc calculer la valeur de ebp- 04 :
:00434815 E862FFFFFF call 0043477C que l'on va éplucher avec délicatesse :0043477C 55 push ebp
:0043477D 8BEC mov ebp, esp
:0043477F 83EC10 sub esp, 00000010
:00434782 56 push esi
:00434783 8B7508 mov esi, dword ptr [ebp+08]
:00434786 FF750C push [ebp+0C]
:00434789 8D45F0 lea eax, dword ptr [ebp-10]
* Possible StringData Ref from Data Obj ->"%lX"
|
:0043478C 68E0274400 push 004427E0
:00434791 50 push eax
* Reference To: USER32.wsprintfA, Ord:02ACh
|
:00434792 FF15FC6A4400 Call dword ptr [00446AFC]
:00434798 8A45F0 mov al, byte ptr [ebp-10]
:0043479B 83C40C add esp, 0000000C
:0043479E 84C0 test al, al
:004347A0 741E je 004347C0
:004347A2 8D4DF0 lea ecx, dword ptr [ebp-10]
:004347A5 2BCE sub ecx, esi
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004347BE(C)
|
:004347A7 3C38 cmp al, 38
:004347A9 7504 jne 004347AF
:004347AB 040A add al, 0A
:004347AD EB06 jmp 004347B5
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004347A9(C)
|
:004347AF 3C42 cmp al, 42
:004347B1 7502 jne 004347B5
:004347B3 04F6 add al, F6
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004347AD(U), :004347B1(C)
|
:004347B5 8806 mov byte ptr [esi], al
:004347B7 8A443101 mov al, byte ptr [ecx+esi+01]
:004347BB 46 inc esi
:004347BC 84C0 test al, al
:004347BE 75E7 jne 004347A7
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004347A0(C)
|
:004347C0 802600 and byte ptr [esi], 00
:004347C3 8B4508 mov eax, dword ptr [ebp+08]
:004347C6 5E pop esi
:004347C7 C9 leave
:004347C8 C3 ret
tout le monde a compris je suppose, non. Bon ok j'explique :
ce qui veut dire que nous sommes enregistré en mode standard et que l'on ne va quand même pas en rester là après le boulot que l'on vient de faire donc on va relancer la machine pour tenter de s'enregistrer en mode pro. On recommence le tout et on trace pour voir passer différent code mais celui qui nous intéresses se trouve ici : :00434871 E82A330000 Call 00437BA0 :00434876 59 pop ecx :00434877 85C0 test eax, eax :00434879 59 pop ecx :0043487A 7450 je 004348CC :0043487C 8D8500FFFFFF lea eax, dword ptr [ebp+FFFFFF00] :00434882 50 push eax :00434883 8D8781190510 lea eax, dword ptr [edi+10051981] :00434889 50 push eax :0043488A 8D8500FEFFFF lea eax, dword ptr [ebp+FFFFFE00] :00434890 50 push eax :00434891 E8E6FEFFFF call 0043477C
Les autres codes rencontrés en cours de route doivent correspondre a une autre extension du soft qu'il est possible de charger sur le site winimage : WinImage Developer Edition, avec WinImage Professional et WinImage SDK Conclusions Si tout cela est même quand assez long a tracer et relativement brouillé la solution n'est pas compliquée en soi; patience et persévérance sont les mots clés du succès. Heureusement le prix des claviers reste abordable car il faut changer souvent les touches F8, F10 et comme c'est est plus simple on change le clavier. Mes remerciements à Christal qui permet à nous les débutants d'avoir une petite place sur son site ce qui nous donne la possibilité de progresser, lentement certes mais on avance quand même. A+ Alien Addentum by Christal La meilleure façon de savoir si les explications d'Alien étaient complètes fut d'utiliser les informations ci dessus, et SEULEMENT celles ci, pour écrire un KeyGenerateur… Et bien ni besoin de Wdasm ou de SoftIce ! Tout y était…. Vous trouverez ci joint le source ASM du KeyMaker, rapidement bricolé par un savant mélange de coupés/collés, pas optimisé du tout , mais fonctionnel… Puissent les Dieux de l'informatique bien vouloir me pardonner un jour ! Bonne journée Christal |