Application du cours numéro 15

Vous avez un problème pour cracker ou vous souhaitez parler de reversing en général...

Re: Application du cours numéro 15

Messagepar GROUPF » 06 Mai 2017, 17:05

Bonjour à tous, Merci pour vos réponses.

J'ai passé pas mal de temps à creuser la piste de crackme mais sans vraiements de résultats j'ai cherché dans le registre et rien.

Il y a bien la piste de ce gars la http://alt.ph.uk.narkive.com/q8VxI0kv/c%20...%20d-resolume que j'ai aussi creusé, mais comme je le disais la semaine passée, j'ai pas réussi à finir le tuto.

J'ai essayé aussi de mettre le Dl=3, comme l'as indiqué crackme, mais ça n'as rien donné chez moi. Crackme ça avait marché toi quand t'as mis dl=3 ?

Est ce que dans le cas ou il y a des libraries, il faut aller regarder à l'adresse mémoire du fichier exe ou du module dll ?


pas sûr de comprendre la question ? si c'est la DLL qui contient la chaine et le code, il faut regarder dans la DLL oui....


Ce que je voulais dire c'est que j'ai l'impression que chaque modules d'un soft a ses propres adresses mémoires, mais j'ai jamais trouvé d'adresse mémoire ni dans le soft ni dans le dll qui corresponde avec celui de ProtectionID.
Protection ID m'indique pourtant plusieurs fois la même adresse avant de changer au bout d'une demie heure...

Merci pour votre aide les gars !
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours numéro 15

Messagepar dionosis » 06 Mai 2017, 19:03

Salut,

GROUPF a écrit:Protection ID m'indique pourtant plusieurs fois la même adresse avant de changer au bout d'une demie heure...

Qu'il t'indique toujours la même adresse c'est normal. Qu'il change en revanche ça ne l'est pas. Tu en es sûr ?

GROUPF a écrit:Ce que je voulais dire c'est que j'ai l'impression que chaque modules d'un soft a ses propres adresses mémoires, mais j'ai jamais trouvé d'adresse mémoire ni dans le soft ni dans le dll qui corresponde avec celui de ProtectionID.

C'est parce que, comme te l'a dit etherlord, à chaque fois qu'une dll est chargée dans l'espace mémoire d'un exe l'emplacement change (on dit qu'elle est rebasée).
Il faut soustraire l'address base bynamique du module obtenue dans olly à l'address base statique de la dll obtenue dans son pe header. Ensuite tu soustrais ça (même si c'est négatif) à l'adresse que t'indique protection id pour obtenir l'adresse courante dans le module monté.

Par contre je vois que Bango t'a indiqué que les sources du potector étaient dispos...
Ca ne suffit pas ?

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Application du cours numéro 15

Messagepar GROUPF » 06 Mai 2017, 21:25

Je pige pas comment utiliser la source de la protect' c'est des librairies Delphi...
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours numéro 15

Messagepar crackme40 » 09 Mai 2017, 16:10

Hello GROUPF

J'ai pas encore trouvé, mais tout ce passe ici

Code: Tout sélectionner
00751726 | FF D3                    | call ebx                                           | ebx:CheckRegStatus
00751728 | 88 45 F7                 | mov byte ptr ss:[ebp-9],al                         | Mise du status AL=> 1 si mauvais
0075172B | 80 7D F7 03              | cmp byte ptr ss:[ebp-9],3                          |AL doit contenir 3 pour être bon


Il appel une fonction qui s'appel checkregstatus

Si tu modifies la valeur, il va encore tester ailleurs :)

Fait une recherche sur les references de call <crdchkreg.sub_49E5C08>, il y en a 10 :D

Je pense que le calcul de la clé est ici, mais j'y comprends pas grand chose
Code: Tout sélectionner
03875D94 | 53                       | push ebx                                           |


Code: Tout sélectionner
03875DEE | 8B 88 14 01 00 00        | mov ecx,dword ptr ds:[eax+114]                     | eax+114:"5Fb-"
03875DF4 | 8B 98 10 01 00 00        | mov ebx,dword ptr ds:[eax+110]                     |
03875DFA | 8B B0 0C 01 00 00        | mov esi,dword ptr ds:[eax+10C]                     |
03875E00 | 8B 90 08 01 00 00        | mov edx,dword ptr ds:[eax+108]                     |
03875E06 | BF 04 00 00 00           | mov edi,4                                          |
03875E0B | 03 CA                    | add ecx,edx                                        |
03875E0D | 03 D1                    | add edx,ecx                                        |
03875E0F | 8B E9                    | mov ebp,ecx                                        |
03875E11 | C1 ED 07                 | shr ebp,7                                          |
03875E14 | 33 CD                    | xor ecx,ebp                                        |
03875E16 | 03 D9                    | add ebx,ecx                                        |
03875E18 | 03 CB                    | add ecx,ebx                                        |
03875E1A | 8B EB                    | mov ebp,ebx                                        |
03875E1C | C1 E5 0D                 | shl ebp,D                                          |
03875E1F | 33 DD                    | xor ebx,ebp                                        |
03875E21 | 03 F3                    | add esi,ebx                                        |
03875E23 | 03 DE                    | add ebx,esi                                        |
03875E25 | 8B EE                    | mov ebp,esi                                        |
03875E27 | C1 ED 11                 | shr ebp,11                                         |
03875E2A | 33 F5                    | xor esi,ebp                                        |
03875E2C | 03 D6                    | add edx,esi                                        |
03875E2E | 03 F2                    | add esi,edx                                        |
03875E30 | 8B EA                    | mov ebp,edx                                        |
03875E32 | C1 E5 09                 | shl ebp,9                                          |
03875E35 | 33 D5                    | xor edx,ebp                                        |
03875E37 | 03 CA                    | add ecx,edx                                        |
03875E39 | 03 D1                    | add edx,ecx                                        |
03875E3B | 8B E9                    | mov ebp,ecx                                        |
03875E3D | C1 ED 03                 | shr ebp,3                                          |
03875E40 | 33 CD                    | xor ecx,ebp                                        |
03875E42 | 03 D9                    | add ebx,ecx                                        |
03875E44 | 03 CB                    | add ecx,ebx                                        |
03875E46 | 8B EB                    | mov ebp,ebx                                        |
03875E48 | C1 E5 07                 | shl ebp,7                                          |
03875E4B | 33 DD                    | xor ebx,ebp                                        |
03875E4D | 03 F3                    | add esi,ebx                                        |
03875E4F | 03 DE                    | add ebx,esi                                        |
03875E51 | 8B EA                    | mov ebp,edx                                        |
03875E53 | C1 ED 0F                 | shr ebp,F                                          |
03875E56 | 33 F5                    | xor esi,ebp                                        |
03875E58 | 03 D6                    | add edx,esi                                        |
03875E5A | 03 F2                    | add esi,edx                                        |
03875E5C | 8B EA                    | mov ebp,edx                                        |
03875E5E | C1 E5 0B                 | shl ebp,B                                          |
03875E61 | 33 D5                    | xor edx,ebp                                        |
03875E63 | 4F                       | dec edi                                            |


SHR :Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF)

ce que cela fait de facon logique

Code: Tout sélectionner
          do {
                ecx27 = ecx18 + edx24;
                ecx28 = ecx27 ^ ecx27 >> 7;
                ebx29 = ebx20 + ecx28;
                ebx30 = ebx29 ^ ebx29 << 13;
                esi31 = esi22 + ebx30;
                esi32 = esi31 ^ esi31 >> 17;
                edx33 = edx24 + ecx27 + esi32;
                edx34 = edx33 ^ edx33 << 9;
                ecx35 = ecx28 + ebx29 + edx34;
                edx36 = edx34 + ecx35;
                ecx37 = ecx35 ^ ecx35 >> 3;
                ebx38 = ebx30 + esi31 + ecx37;
                ecx18 = ecx37 + ebx38;
                ebx39 = ebx38 ^ ebx38 << 7;
                esi40 = esi32 + edx33 + ebx39;
                ebx20 = ebx39 + esi40;
                esi41 = esi40 ^ edx36 >> 15;
                edx42 = edx36 + esi41;
                esi22 = esi41 + edx42;
                edx24 = edx42 ^ edx42 << 11;
                --edi26;
            } while (edi26);

@+
Dernière édition par crackme40 le 09 Mai 2017, 23:07, édité 3 fois.
crackme40
Apprenti
Apprenti
 
Messages: 63
Inscription: 06 Septembre 2012, 21:36

Re: Application du cours numéro 15

Messagepar crackme40 » 09 Mai 2017, 17:02

Hello Bango

En effet, il passe par cette fonction

Code: Tout sélectionner
03886359 | E8 E6 09 FB FF           | call <crdchkreg.GetVolumeInformationA>             |
0388635E | 8D 95 94 FA FF FF        | lea edx,dword ptr ss:[ebp-56C]                     |
03886364 | 8D 85 94 FE FF FF        | lea eax,dword ptr ss:[ebp-16C]                     |
0388636A | B9 05 00 00 00           | mov ecx,5                                          |


Qui pointe vers cette fonction du kernel32

Et il va construire le serial

Image


et il compare
Code: Tout sélectionner
0379636F | E8 20 FA FF FF           | call crdchkreg.3795D94                             |
03796374 | 43                       | inc ebx                                            |
03796375 | 80 FB 44                 | cmp bl,44                                          | 44:'D'


Enfin c'est ce que j'ai compris. :)
crackme40
Apprenti
Apprenti
 
Messages: 63
Inscription: 06 Septembre 2012, 21:36

Re: Application du cours numéro 15

Messagepar crackme40 » 09 Mai 2017, 18:30

Hello,

Afin d'être en version d'evaluation, il genere un code d'evaluation, car il retourne avec 2

Exemple sur ma machine : E997-01D5-CC49-AC36

Code: Tout sélectionner
037469B2 | E8 BD FA FF FF           | call crdchkreg.3746474                             | Generation code evaluation
037469B7 | 8D 85 E4 FE FF FF        | lea eax,dword ptr ss:[ebp-11C]                     | [ebp-11C]:"E997-01D5-CC49-AC36"
037469BD | 8D 95 F8 FE FF FF        | lea edx,dword ptr ss:[ebp-108]                     |
037469C3 | E8 00 E2 FA FF           | call crdchkreg.36F4BC8                             |
037469C8 | 8B 85 E4 FE FF FF        | mov eax,dword ptr ss:[ebp-11C]                     | [ebp-11C]:"E997-01D5-CC49-AC36"
037469CE | 8D 55 F8                 | lea edx,dword ptr ss:[ebp-8]                       |
037469D1 | B9 08 00 00 00           | mov ecx,8                                          |


La valeur est comparée ici

Code: Tout sélectionner
04815C08 | 53                       | push ebx                                           |
04815C09 | 56                       | push esi                                           |
04815C0A | 57                       | push edi                                           |
04815C0B | 83 C4 E8                 | add esp,FFFFFFE8                                   |
04815C0E | 88 4C 24 08              | mov byte ptr ss:[esp+8],cl                         |
04815C12 | 89 54 24 04              | mov dword ptr ss:[esp+4],edx                       |
04815C16 | 89 04 24                 | mov dword ptr ss:[esp],eax                         |
04815C19 | 8B 44 24 04              | mov eax,dword ptr ss:[esp+4]                       |
04815C1D | 8B 00                    | mov eax,dword ptr ds:[eax]                         |
04815C1F | 89 44 24 0C              | mov dword ptr ss:[esp+C],eax                       |
04815C23 | 8B 44 24 04              | mov eax,dword ptr ss:[esp+4]                       |
04815C27 | 8B 40 04                 | mov eax,dword ptr ds:[eax+4]                       |
04815C2A | 89 44 24 10              | mov dword ptr ss:[esp+10],eax                      |
04815C2E | C7 44 24 14 04 00 00 00  | mov dword ptr ss:[esp+14],4                        |
04815C36 | BE 8C A8 81 04           | mov esi,crdchkreg.481A88C                          |
04815C3B | 8B 54 24 0C              | mov edx,dword ptr ss:[esp+C]                       |
04815C3F | 0F B6 44 24 08           | movzx eax,byte ptr ss:[esp+8]                      |
04815C44 | 8B D8                    | mov ebx,eax                                        |
04815C46 | 03 DB                    | add ebx,ebx                                        |
04815C48 | 8D 1C 5B                 | lea ebx,dword ptr ds:[ebx+ebx*2]                   |
04815C4B | 8B 04 DE                 | mov eax,dword ptr ds:[esi+ebx*8]                   |
04815C4E | 8B 0C 24                 | mov ecx,dword ptr ss:[esp]                         |
04815C51 | 8B 0C 81                 | mov ecx,dword ptr ds:[ecx+eax*4]                   |
04815C54 | 8B 44 DE 04              | mov eax,dword ptr ds:[esi+ebx*8+4]                 |
04815C58 | 8B 3C 24                 | mov edi,dword ptr ss:[esp]                         |
04815C5B | 8B 04 87                 | mov eax,dword ptr ds:[edi+eax*4]                   |
04815C5E | 8B 5C DE 08              | mov ebx,dword ptr ds:[esi+ebx*8+8]                 |
04815C62 | 8B 3C 24                 | mov edi,dword ptr ss:[esp]                         |
04815C65 | 8B 1C 9F                 | mov ebx,dword ptr ds:[edi+ebx*4]                   |
04815C68 | 03 D3                    | add edx,ebx                                        |
04815C6A | 03 DA                    | add ebx,edx                                        |
04815C6C | 8B FA                    | mov edi,edx                                        |
04815C6E | C1 EF 07                 | shr edi,7                                          |
04815C71 | 33 D7                    | xor edx,edi                                        |
04815C73 | 03 CA                    | add ecx,edx                                        |
04815C75 | 03 D1                    | add edx,ecx                                        |
04815C77 | 8B F9                    | mov edi,ecx                                        |
04815C79 | C1 E7 0D                 | shl edi,D                                          |
04815C7C | 33 CF                    | xor ecx,edi                                        |
04815C7E | 03 C1                    | add eax,ecx                                        |
04815C80 | 03 C8                    | add ecx,eax                                        |
04815C82 | 8B F8                    | mov edi,eax                                        |
04815C84 | C1 EF 11                 | shr edi,11                                         |
04815C87 | 33 C7                    | xor eax,edi                                        |
04815C89 | 03 D8                    | add ebx,eax                                        |
04815C8B | 03 C3                    | add eax,ebx                                        |
04815C8D | 8B FB                    | mov edi,ebx                                        |
04815C8F | C1 E7 09                 | shl edi,9                                          |
04815C92 | 33 DF                    | xor ebx,edi                                        |
04815C94 | 03 D3                    | add edx,ebx                                        |
04815C96 | 03 DA                    | add ebx,edx                                        |
04815C98 | 8B FA                    | mov edi,edx                                        |
04815C9A | C1 EF 03                 | shr edi,3                                          |
04815C9D | 33 D7                    | xor edx,edi                                        |
04815C9F | 03 CA                    | add ecx,edx                                        |
04815CA1 | 8B D1                    | mov edx,ecx                                        |
04815CA3 | C1 E2 07                 | shl edx,7                                          |
04815CA6 | 33 CA                    | xor ecx,edx                                        |
04815CA8 | 03 C1                    | add eax,ecx                                        |
04815CAA | 8B D3                    | mov edx,ebx                                        |
04815CAC | C1 EA 0F                 | shr edx,F                                          |
04815CAF | 33 C2                    | xor eax,edx                                        |
04815CB1 | 03 D8                    | add ebx,eax                                        |
04815CB3 | 8B C3                    | mov eax,ebx                                        |
04815CB5 | C1 E0 0B                 | shl eax,B                                          |
04815CB8 | 33 D8                    | xor ebx,eax                                        |
04815CBA | 8B 44 24 10              | mov eax,dword ptr ss:[esp+10]                      |
04815CBE | 33 C3                    | xor eax,ebx                                        |
04815CC0 | 8B 54 24 0C              | mov edx,dword ptr ss:[esp+C]                       |
04815CC4 | 89 54 24 10              | mov dword ptr ss:[esp+10],edx                      |
04815CC8 | 89 44 24 0C              | mov dword ptr ss:[esp+C],eax                       |
04815CCC | 83 C6 0C                 | add esi,C                                          |
04815CCF | FF 4C 24 14              | dec dword ptr ss:[esp+14]                          |
04815CD3 | 0F 85 62 FF FF FF        | jne crdchkreg.4815C3B                              |
04815CD9 | 8B 44 24 04              | mov eax,dword ptr ss:[esp+4]                       |
04815CDD | 8B 54 24 10              | mov edx,dword ptr ss:[esp+10]                      | Mise de la valeur dans 18E864 dans EDX
04815CE1 | 89 10                    | mov dword ptr ds:[eax],edx                         | Mise de la valeur de EDX dans la pile de EAX : EDX=B19B => 18EE20
04815CE3 | 8B 44 24 04              | mov eax,dword ptr ss:[esp+4]                       |
04815CE7 | 8B 54 24 0C              | mov edx,dword ptr ss:[esp+C]                       |
04815CEB | 89 50 04                 | mov dword ptr ds:[eax+4],edx                       |
04815CEE | 83 C4 18                 | add esp,18                                         |
04815CF1 | 5F                       | pop edi                                            |
04815CF2 | 5E                       | pop esi                                            |
04815CF3 | 5B                       | pop ebx                                            |
04815CF4 | C3                       | ret                                                |


La valeur doit etre egale a 9C5B

Code: Tout sélectionner
048164B3 | E8 50 F7 FF FF           | call <crdchkreg.sub_4815C08>                       | Calcul du serial 2
048164B8 | 0F B7 04 24              | movzx eax,word ptr ss:[esp]                        | Mise de la valeur de 18EE20 dans EAX
048164BC | 3D 5B 9C 00 00           | cmp eax,9C5B                                       | Compare EAX a 9C5B : Pas bon B19B


Et ensuite fait un case, et met la valeur dans AL

Code: Tout sélectionner
048164C1 | 7F 19                    | jg crdchkreg.48164DC                               |
048164C3 | 74 4C                    | je crdchkreg.4816511                               |
048164C5 | 2D 69 3C 00 00           | sub eax,3C69                                       |
048164CA | 74 36                    | je crdchkreg.4816502                               |
048164CC | 2D 32 28 00 00           | sub eax,2832                                       |
048164D1 | 74 25                    | je crdchkreg.48164F8                               |
048164D3 | 2D A6 2E 00 00           | sub eax,2EA6                                       |
048164D8 | 74 32                    | je crdchkreg.481650C                               |
048164DA | EB 3A                    | jmp crdchkreg.4816516                              |
048164DC | 2D CB A4 00 00           | sub eax,A4CB                                       |
048164E1 | 74 10                    | je crdchkreg.48164F3                               |
048164E3 | 2D 2B 35 00 00           | sub eax,352B                                       |
048164E8 | 74 13                    | je crdchkreg.48164FD                               |
048164EA | 2D DF 19 00 00           | sub eax,19DF                                       |
048164EF | 74 16                    | je crdchkreg.4816507                               |
048164F1 | EB 23                    | jmp crdchkreg.4816516                              |
048164F3 | 33 C0                    | xor eax,eax                                        |
048164F5 | 59                       | pop ecx                                            |
048164F6 | 5A                       | pop edx                                            |
048164F7 | C3                       | ret                                                |
048164F8 | B0 01                    | mov al,1                                           |
048164FA | 59                       | pop ecx                                            |
048164FB | 5A                       | pop edx                                            |
048164FC | C3                       | ret                                                |
048164FD | B0 02                    | mov al,2                                           |
048164FF | 59                       | pop ecx                                            |
04816500 | 5A                       | pop edx                                            |
04816501 | C3                       | ret                                                |
04816502 | B0 03                    | mov al,3                                           |
04816504 | 59                       | pop ecx                                            |
04816505 | 5A                       | pop edx                                            |
04816506 | C3                       | ret                                                |
04816507 | B0 04                    | mov al,4                                           |
04816509 | 59                       | pop ecx                                            |
0481650A | 5A                       | pop edx                                            |
0481650B | C3                       | ret                                                |
0481650C | B0 05                    | mov al,5                                           |
0481650E | 59                       | pop ecx                                            |
0481650F | 5A                       | pop edx                                            |
04816510 | C3                       | ret                                                |
04816511 | B0 06                    | mov al,6                                           |
04816513 | 59                       | pop ecx                                            |
04816514 | 5A                       | pop edx                                            |
04816515 | C3                       | ret                                                |
04816516 | B0 07                    | mov al,7                                           | Quand c'est pas bon, il met AL a 7
04816518 | 59                       | pop ecx                                            |
04816519 | 5A                       | pop edx                                            |
0481651A | C3                       | ret                                                |


La suite

Code: Tout sélectionner
03686F43 | E8 00 FA FF FF           | call crdchkreg.3686948                             | Modification de AL a 07
03686F48 | FE C8                    | dec al                                             |
03686F4A | 74 06                    | je crdchkreg.3686F52                               |
03686F4C | FE C8                    | dec al                                             |
03686F4E | 74 3A                    | je crdchkreg.3686F8A                               |
03686F50 | EB 53                    | jmp crdchkreg.3686FA5                              |
03686F52 | 8B D6                    | mov edx,esi                                        |
03686F54 | 8B CF                    | mov ecx,edi                                        |
03686F56 | 8B C3                    | mov eax,ebx                                        |
03686F58 | E8 43 FE FF FF           | call <crdchkreg.sub_3686DA0>                       |
03686F5D | 8B D6                    | mov edx,esi                                        |
03686F5F | 8D 8D 00 FF FF FF        | lea ecx,dword ptr ss:[ebp-100]                     |
03686F65 | 8B C3                    | mov eax,ebx                                        |
03686F67 | E8 54 FC FF FF           | call crdchkreg.3686BC0                             |
03686F6C | 2C 01                    | sub al,1                                           |
03686F6E | 72 0A                    | jb crdchkreg.3686F7A                               |
03686F70 | 2C 02                    | sub al,2                                           |
03686F72 | 74 0A                    | je crdchkreg.3686F7E                               |
03686F74 | 2C 03                    | sub al,3                                           |
03686F76 | 74 0A                    | je crdchkreg.3686F82                               |
03686F78 | EB 0C                    | jmp crdchkreg.3686F86                              |
03686F7A | B0 02                    | mov al,2                                           |
03686F7C | EB 29                    | jmp crdchkreg.3686FA7                              |
03686F7E | B0 03                    | mov al,3                                           |
03686F80 | EB 25                    | jmp crdchkreg.3686FA7                              |
03686F82 | B0 04                    | mov al,4                                           |
03686F84 | EB 21                    | jmp crdchkreg.3686FA7                              |
03686F86 | B0 01                    | mov al,1                                           |
03686F88 | EB 1D                    | jmp crdchkreg.3686FA7                              |
03686F8A | 8B D6                    | mov edx,esi                                        |
03686F8C | 8D 8D 00 FF FF FF        | lea ecx,dword ptr ss:[ebp-100]                     |
03686F92 | 8B C3                    | mov eax,ebx                                        |
03686F94 | E8 7B FA FF FF           | call <crdchkreg.sub_3686A14>                       |
03686F99 | 84 C0                    | test al,al                                         |
03686F9B | 74 04                    | je crdchkreg.3686FA1                               |
03686F9D | 33 C0                    | xor eax,eax                                        |
03686F9F | EB 06                    | jmp crdchkreg.3686FA7                              |
03686FA1 | B0 01                    | mov al,1                                           |
03686FA3 | EB 02                    | jmp crdchkreg.3686FA7                              |
03686FA5 | B0 01                    | mov al,1                                           | Met AL a 1
03686FA7 | 5F                       | pop edi                                            |
03686FA8 | 5E                       | pop esi                                            |
03686FA9 | 5B                       | pop ebx                                            |
03686FAA | 8B E5                    | mov esp,ebp                                        |
03686FAC | 5D                       | pop ebp                                            |
03686FAD | C2 04 00                 | ret 4                                              |
crackme40
Apprenti
Apprenti
 
Messages: 63
Inscription: 06 Septembre 2012, 21:36

Re: Application du cours numéro 15

Messagepar crackme40 » 09 Mai 2017, 21:46

Re,

Alors en fait, la valeur d'EAX doit être egale a 649B (3C69+2832=649B), si c'est le cas, alors il va dans

Code: Tout sélectionner
037764F8 | B0 01                    | mov al,1                                           | EAX = 649B
037764FA | 59                       | pop ecx                                            |
037764FB | 5A                       | pop edx                                            |
037764FC | C3                       | ret                                                |


Donc je pense que le serial avec les calculs doit arriver ça pour que cela soit le bon

Là je seche sur le fait de la construction d'EAX a 649B qui est ici

Code: Tout sélectionner
04CE5C08 | 53                       | push ebx                                           |
04CE5C09 | 56                       | push esi                                           |
04CE5C0A | 57                       | push edi                                           |
04CE5C0B | 83 C4 E8                 | add esp,FFFFFFE8                                   |
04CE5C0E | 88 4C 24 08              | mov byte ptr ss:[esp+8],cl                         |
04CE5C12 | 89 54 24 04              | mov dword ptr ss:[esp+4],edx                       |
04CE5C16 | 89 04 24                 | mov dword ptr ss:[esp],eax                         |
04CE5C19 | 8B 44 24 04              | mov eax,dword ptr ss:[esp+4]                       |
04CE5C1D | 8B 00                    | mov eax,dword ptr ds:[eax]                         |
04CE5C1F | 89 44 24 0C              | mov dword ptr ss:[esp+C],eax                       | [esp+C]:sub_4CE6944+A5
04CE5C23 | 8B 44 24 04              | mov eax,dword ptr ss:[esp+4]                       |
04CE5C27 | 8B 40 04                 | mov eax,dword ptr ds:[eax+4]                       |
04CE5C2A | 89 44 24 10              | mov dword ptr ss:[esp+10],eax                      | Modification de la pile : 18E864
04CE5C2E | C7 44 24 14 04 00 00 00  | mov dword ptr ss:[esp+14],4                        | [esp+14]:sub_4CE6A04
04CE5C36 | BE 8C A8 CE 04           | mov esi,crdchkreg.4CEA88C                          |
04CE5C3B | 8B 54 24 0C              | mov edx,dword ptr ss:[esp+C]                       | [esp+C]:sub_4CE6944+A5
04CE5C3F | 0F B6 44 24 08           | movzx eax,byte ptr ss:[esp+8]                      |
04CE5C44 | 8B D8                    | mov ebx,eax                                        |
04CE5C46 | 03 DB                    | add ebx,ebx                                        |
04CE5C48 | 8D 1C 5B                 | lea ebx,dword ptr ds:[ebx+ebx*2]                   |
04CE5C4B | 8B 04 DE                 | mov eax,dword ptr ds:[esi+ebx*8]                   |
04CE5C4E | 8B 0C 24                 | mov ecx,dword ptr ss:[esp]                         |
04CE5C51 | 8B 0C 81                 | mov ecx,dword ptr ds:[ecx+eax*4]                   |
04CE5C54 | 8B 44 DE 04              | mov eax,dword ptr ds:[esi+ebx*8+4]                 |
04CE5C58 | 8B 3C 24                 | mov edi,dword ptr ss:[esp]                         |
04CE5C5B | 8B 04 87                 | mov eax,dword ptr ds:[edi+eax*4]                   |
04CE5C5E | 8B 5C DE 08              | mov ebx,dword ptr ds:[esi+ebx*8+8]                 |
04CE5C62 | 8B 3C 24                 | mov edi,dword ptr ss:[esp]                         |
04CE5C65 | 8B 1C 9F                 | mov ebx,dword ptr ds:[edi+ebx*4]                   |
04CE5C68 | 03 D3                    | add edx,ebx                                        |
04CE5C6A | 03 DA                    | add ebx,edx                                        |
04CE5C6C | 8B FA                    | mov edi,edx                                        |
04CE5C6E | C1 EF 07                 | shr edi,7                                          |
04CE5C71 | 33 D7                    | xor edx,edi                                        |
04CE5C73 | 03 CA                    | add ecx,edx                                        |
04CE5C75 | 03 D1                    | add edx,ecx                                        |
04CE5C77 | 8B F9                    | mov edi,ecx                                        |
04CE5C79 | C1 E7 0D                 | shl edi,D                                          |
04CE5C7C | 33 CF                    | xor ecx,edi                                        |
04CE5C7E | 03 C1                    | add eax,ecx                                        |
04CE5C80 | 03 C8                    | add ecx,eax                                        |
04CE5C82 | 8B F8                    | mov edi,eax                                        |
04CE5C84 | C1 EF 11                 | shr edi,11                                         |
04CE5C87 | 33 C7                    | xor eax,edi                                        |
04CE5C89 | 03 D8                    | add ebx,eax                                        |
04CE5C8B | 03 C3                    | add eax,ebx                                        |
04CE5C8D | 8B FB                    | mov edi,ebx                                        |
04CE5C8F | C1 E7 09                 | shl edi,9                                          |
04CE5C92 | 33 DF                    | xor ebx,edi                                        |
04CE5C94 | 03 D3                    | add edx,ebx                                        |
04CE5C96 | 03 DA                    | add ebx,edx                                        |
04CE5C98 | 8B FA                    | mov edi,edx                                        |
04CE5C9A | C1 EF 03                 | shr edi,3                                          |
04CE5C9D | 33 D7                    | xor edx,edi                                        |
04CE5C9F | 03 CA                    | add ecx,edx                                        |
04CE5CA1 | 8B D1                    | mov edx,ecx                                        |
04CE5CA3 | C1 E2 07                 | shl edx,7                                          |
04CE5CA6 | 33 CA                    | xor ecx,edx                                        |
04CE5CA8 | 03 C1                    | add eax,ecx                                        |
04CE5CAA | 8B D3                    | mov edx,ebx                                        |
04CE5CAC | C1 EA 0F                 | shr edx,F                                          |
04CE5CAF | 33 C2                    | xor eax,edx                                        |
04CE5CB1 | 03 D8                    | add ebx,eax                                        |
04CE5CB3 | 8B C3                    | mov eax,ebx                                        |
04CE5CB5 | C1 E0 0B                 | shl eax,B                                          |
04CE5CB8 | 33 D8                    | xor ebx,eax                                        |
04CE5CBA | 8B 44 24 10              | mov eax,dword ptr ss:[esp+10]                      | Mise dans EAX la valeur de la pile : 18E864
04CE5CBE | 33 C3                    | xor eax,ebx                                        |
04CE5CC0 | 8B 54 24 0C              | mov edx,dword ptr ss:[esp+C]                       | [esp+C]:sub_4CE6944+A5
04CE5CC4 | 89 54 24 10              | mov dword ptr ss:[esp+10],edx                      | Modification de la pile : 18E864
04CE5CC8 | 89 44 24 0C              | mov dword ptr ss:[esp+C],eax                       | [esp+C]:sub_4CE6944+A5
04CE5CCC | 83 C6 0C                 | add esi,C                                          |
04CE5CCF | FF 4C 24 14              | dec dword ptr ss:[esp+14]                          | [esp+14]:sub_4CE6A04
04CE5CD3 | 0F 85 62 FF FF FF        | jne crdchkreg.4CE5C3B                              |
04CE5CD9 | 8B 44 24 04              | mov eax,dword ptr ss:[esp+4]                       |
04CE5CDD | 8B 54 24 10              | mov edx,dword ptr ss:[esp+10]                      | Mise de la valeur dans 18E864 dans EDX
04CE5CE1 | 89 10                    | mov dword ptr ds:[eax],edx                         | Mise de la valeur de EDX dans la pile de EAX : EDX=B19B => 18EE20
04CE5CE3 | 8B 44 24 04              | mov eax,dword ptr ss:[esp+4]                       |
04CE5CE7 | 8B 54 24 0C              | mov edx,dword ptr ss:[esp+C]                       | [esp+C]:sub_4CE6944+A5
04CE5CEB | 89 50 04                 | mov dword ptr ds:[eax+4],edx                       |
04CE5CEE | 83 C4 18                 | add esp,18                                         |
04CE5CF1 | 5F                       | pop edi                                            |
04CE5CF2 | 5E                       | pop esi                                            |
04CE5CF3 | 5B                       | pop ebx                                            |
04CE5CF4 | C3                       | ret                                                |


J'ai juste compris qu'il fait une boucle de 4 (peut être en rapport au 4 serial separé par un "-")

Code: Tout sélectionner
04975C2E | C7 44 24 14 04 00 00 00  | mov dword ptr ss:[esp+14],4                        | Va faire 4 Boucle: il met la valeur dans 18EE0C


Et decremente ce compteur

Code: Tout sélectionner
04CE5CCF | FF 4C 24 14              | dec dword ptr ss:[esp+14]                          | [esp+14]:sub_4CE6A04


Si quelqu'un peut jeter un oeil, et m'expliquer?

Merci beaucoup :)
crackme40
Apprenti
Apprenti
 
Messages: 63
Inscription: 06 Septembre 2012, 21:36

Re: Application du cours numéro 15

Messagepar GROUPF » 10 Mai 2017, 19:59

Wahou, T'as vachement avancé !

Je vais essayer de compiler un projet c++ builder avec les routines de la protection . Je t'enverrais le exe.

Pour le reste, il faut des conseils de pros :) Moi je comprends ce que tu racontes, mais comme toi je bloque sur le cryptage de la key.
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours numéro 15

Messagepar crackme40 » 10 Mai 2017, 22:55

Bonsoir,

J'ai trouvé un crackme du même style, mais en moins compliqué.
Donc c'est sur la construction du serial.

Je le met, c'est sur un autre site, alors je sais pas si je peux.

hxxp://www.sunshine2k.de/reversing/tuts ... KeyMe1.htm

Donc dans ce qu'il y a a télécharger, il y a le keyme.exe (ce qu'il faut chercher :D), la doc en html, et aussi un keygen et les sources.

J'ai appris des choses, j'avoue que j'ai compris grace au tuto, aussi non :?
crackme40
Apprenti
Apprenti
 
Messages: 63
Inscription: 06 Septembre 2012, 21:36

Re: Application du cours numéro 15

Messagepar GROUPF » 11 Mai 2017, 08:50

Tu as trouvé les conditions de tropix ?
J'ai essayé de faire au papier mais les clés que je rentrent sont pas bonnes... Je crois aussi qu'il compare avec le login...
Tu as réussi à choper un serial valide toi ?
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours numéro 15

Messagepar crackme40 » 11 Mai 2017, 12:34

Bonjour,

Alors quand on arrive ici et qu'on rentre par exemple ce code "59C0-5251-4A42-2046"

EDX a la valeur suivant : 5152C059 qui correspond au 8 premiers chiffres mais de facon inverser

Code: Tout sélectionner
05005C68 | 03 D3                    | add edx,ebx                                                       |


Voila

EDIT :

Si je rentre le code suivant "59C0-5251-4A42-2046"

Il calcul en deux parties

1°) 59C0-5251 => 5152C059 ====> "03505C3B mov edx,dword ptr ss:[esp+C]" <== donc dans EDX

2°) 4A42-2046 => 4620424A ====> "03505C1D mov eax,dword ptr ds:[eax]" <== donc dans EAX

Qui est calculé plus loins

Code: Tout sélectionner
03825CBA | 8B 44 24 10              | mov eax,dword ptr ss:[esp+10]                                     
03825CBE | 33 C3                    | xor eax,ebx                                                       
03825CC0 | 8B 54 24 0C              | mov edx,dword ptr ss:[esp+C]     
crackme40
Apprenti
Apprenti
 
Messages: 63
Inscription: 06 Septembre 2012, 21:36

Re: Application du cours numéro 15

Messagepar GROUPF » 15 Mai 2017, 11:34

Salut,

Tu as réussi à avancer ?

Moi j'ai toujours pas réussi à compiler le guard dans delphi.
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

Re: Application du cours numéro 15

Messagepar crackme40 » 18 Mai 2017, 21:04

Bonsoir,

Il y aurait quelques parts, un tuto afin de supprimer une protection de TurboPower OnGuard (serial) ?

J'ai trouvé ça avec le delphi

hxxp://wiki.lazarus.freepascal.org/OnGuard#Screenshots

Mais rien sur comment faire, afin de by passer cela

En vous remerciant :)
crackme40
Apprenti
Apprenti
 
Messages: 63
Inscription: 06 Septembre 2012, 21:36

Re: Application du cours numéro 15

Messagepar crackme40 » 19 Mai 2017, 19:49

Hello GROUPF ,

Alors j'ai reussi a enregistrer

Image

Mais j'aimerai une aide sur TurboPower OnGuard
crackme40
Apprenti
Apprenti
 
Messages: 63
Inscription: 06 Septembre 2012, 21:36

Re: Application du cours numéro 15

Messagepar GROUPF » 21 Mai 2017, 12:04

Oh bah ça alors ! Tu as fait comment ? Jai cherché sur les forums dans mes langues connues (anglais, suédois' fr) et rien qui date pas d'y ya moins de 5 ans. La protection a vachement évoluée depuis.
Tu cherches a savoir quoi exactement ?
GROUPF
Débutant
Débutant
 
Messages: 35
Inscription: 25 Avril 2017, 22:32

PrécédenteSuivante

Retourner vers Reversing

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot] et 3 invités