CrAcKmE v1.0 Hello tous, j'ai decouvert un nouveau truc sur internet les crackme ... ben c'est quoi ? tout simplement, c'est programme, pour etre cracké ... Kewl non ? Comme ca, on reste dans la legalite tout en apprenant ;) Outils necessaire : - Softice - CrackMe v1.0 by Cruehead /MiB ( Pour trouver les crackme allez sous www.altavista.com et cherchez crackme ) - Logique supreme ;) But du crack : - Decouverte de XOR ( ou exclusif), un moyen simple de cryptage qui fera abandonner certain crackeur en herbe ... Rappel : - La formule du cryptage est : crypte=donnee XOR code - La formule du decryptage est : donnee=crypte XOR code Allez on lance le prog on va dans Help et Register héhé comme dans les vrais ! Apres on mets un nom et un #, et on lance sotice on tape hwnd et on place un bmsg sur le premier edit de crackme ... ca donnera ca bmsg 028a wm_gettext (chez vous le n° 028a changera) on quitte softice on valide apres plusieurs pression de f12 on tombe sur : (environ 15 fois ...) * Reference To: USER32.DialogBoxParamA, Ord:0000h | :0040121E E87D020000 Call 004014A0 :00401223 83F800 cmp eax, 00000000 :00401226 74BE je 004011E6 :00401228 688E214000 push 0040218E :0040122D E84C010000 call 0040137E :00401232 50 push eax :00401233 687E214000 push 0040217E :00401238 E89B010000 call 004013D8 :0040123D 83C404 add esp, 00000004 :00401240 58 pop eax :00401241 3BC3 cmp eax, ebx :00401243 7407 je 0040124C :00401245 E818010000 call 00401362 :0040124A EB9A jmp 004011E6 Quand on arrive en 00401245 une mauvaise boite s'affiche ... On vire le 1 bp en tapant bc 0 et on en mets un en 0040121e en tapant bpx 0040121e ou en pointant dessus puis f9 .... On quitte on refait le pipo nom/serial ... Pour moi HaCkVaDoR puis 55555555 ... on valide et on tombe sur 0040121e ... normal on a mis un bp en 0040122e il push quelque chose, on va voir quoi ... Rappel : PUSH : permet de mettre un element sur la pile on tape : d 0040218e je tombe sur mon nom ... C'est bizarre un push juste avant un call ... On va l'explorer :0040137E 8B742404 mov esi, dword ptr [esp+04] :00401382 56 push esi :00401383 8A06 mov al, byte ptr [esi] :00401385 84C0 test al, al :00401387 7413 je 0040139C :00401389 3C41 cmp al, 41 :0040138B 721F jb 004013AC :0040138D 3C5A cmp al, 5A :0040138F 7303 jnb 00401394 :00401391 46 inc esi :00401392 EBEF jmp 00401383 ... :0040139C 5E pop esi :0040139D E820000000 call 004013C2 :004013A2 81F778560000 xor edi, 00005678 On remarque qu'il push notre nom en esi et qu'ensuite qu'il transcrit mon nom en majuscule toujours dans esi et ensuite il effectue un XOR avec mon nom ... H A C K V A D O R 48 41 43 4B 56 41 44 4F 52 puis 48+41+43+4b+56+41+44+4f+52 XOR 5678 = 293 XOR 5678 = 54EB Maintenant continuons a tracer ... En 00401233 il push notre serial et ensuite un call ... :004013D8 33C0 xor eax, eax :004013DA 33FF xor edi, edi :004013DC 33DB xor ebx, ebx :004013DE 8B742404 mov esi, dword ptr [esp+04] :004013E2 B00A mov al, 0A :004013E4 8A1E mov bl, byte ptr [esi] :004013E6 84DB test bl, bl :004013E8 740B je 004013F5 :004013EA 80EB30 sub bl, 30 :004013ED 0FAFF8 imul edi, eax :004013F0 03FB add edi, ebx :004013F2 46 inc esi :004013F3 EBED jmp 004013E2 :004013F5 81F734120000 xor edi, 00001234 :004013FB 8BDF mov ebx, edi :004013FD C3 ret Retour au meme schema ... Prend notre serial puis fait un xor 1234 dessus ... Soit pour moi 55555555 en hexa 34FB5E3 XOR 1234 = 34FA7D7 Bah ca ressemble pas trop a ce que je devrais avoir ... soit 54EB ... reflechissons un peu ... (ndlr:un peu alors) La formule du cryptage est : crypté=donnée XOR code La formule du décryptage est : donnée=crypté XOR code Soit en plus clair : Pour le cryptage : 54EB = 48+41+43+4b+56+41+44+4f+52 XOR 5678 d'ou d'apres donnee=crypte XOR code : 54EB = x XOR 1234 <=> x = 54EB XOR 1234 <=> x = 46DF 46DF est en hexa bien sur ;) ce qui donne en decimal 18143 On test, pour moi HaCkVaDoR/18143 Yeah ca marche ! HaCkVaDoR hvador@mocourrier.com