888 ,e, e88'888 888,8, ,"Y88b e88'888 888 ee " 888 8e e88 888 d888 '8 888 " "8" 888 d888 '8 888 P 888 888 88b d888 888 Y888 , 888 ,ee 888 Y888 , 888 b 888 888 888 Y888 888 "88,e8' 888 "88 888 "88,e8' 888 8b 888 888 888 "88 888 , 88P "8",P" ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Programme : FireHand Ember v3.1.1 Protection: Evaluation Period Ecrit par : LuCiFuGe RoFoCaLe [STYX] Type de Crack: Patch Date : 01/1998 Niveau: Novice ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Introduction: ÄÄÄÄÄÄÄÄÄÄÄÄÄ Sur cette nouvelle version de ce soft, je vais vous montrer les bases du dead cracking. Pour cela il vous faudra - W32Dasm v8.9 [Thx to Revolt] - le soft dispo sur http://www.firehand.com Cette fois, nous allons supprimer la periode d'evaluation et le nag screen Phase D'approche: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Etudions le fonctionnement du soft: - Je fais un dir /s de mon dur - Install Firehand Ember - Sauve ma base de regsitre - Lancer Regmon et filemon afin d'observer les acces d'ember - On peut observer dans regmon qu'ember regarde dans la base de registre a 3 endroits. - Uninstall de Firehand Ember - Dir /s du dur, comparaison -> rien de marquant - Compare les deux bases de donnees pour voir ce qu'il reste comme saloperie Nous allons examiner la cle LOCAL\SOFTWARE\MICROSOFT\CURRENTVERSION\MSOFC\ car c'est la seule qui est a part ;) A l'origine, apres le 1 lancement: LOCAL\SOFTWARE\MICROSOFT\CURRENTVERSION\MSOFC\ HC = "FFFFFFFF" SC = "FFFFFFDB" SLC= "FFFFFFDC" Apres chaque lancement: HC = "FFFFFFFF" SC = "FFFFFFFE" SLC= "FFFFFFDC" HC = "FFFFFFFF" SC = "FFFFFFFC" SLC= "FFFFFFDC" HC = "FFFFFFFF" SC = "FFFFFFFB" SLC= "FFFFFFDC" Donc on peut en conclure que SC contient le compteur de lancement :) Phase deux: ÄÄÄÄÄÄÄÄÄÄÄ Si on rentre un code de 13 Chiffres mauvais le programme se lock: HC = "FFFFFFFE" lors d'un lancement future la fenetre SC = "FFFFFFDB" periode d'essai apparaitra SLC= "FFFFFFDC" et Key= "xxxxxxxx" un test se fait au lancement du soft si le pass User="xxxxxxxx" n'est pas valide la fenetre du lock apparait Phase d'attaque: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ a) Cherchons ou le soft regarde dans la base de registre ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ - Prendre W32Dasm v8.9 par exemple - Desassembler ember.exe - Chercher la cle SOFTWARE\MICROSOFT\CURRENTVERSION\MSOFC -> 40a63f: ... -> 40b348: ... b) Analysons le premier acces: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Possible StringData Ref from Data Obj ->"SOFTWARE\Microsoft\Windows\CurrentVersion\Msof" ->"c" | :0040A63F 6818FA4100 push 0041FA18 :0040A644 6802000080 push 80000002 * Reference To: ADVAPI32.RegCreateKeyA, Ord:011Ah | :0040A649 FF15D0654200 Call dword ptr [004265D0] :0040A64F 85C0 test eax, eax :0040A651 741C je 0040A66F ... c) On se positionne sur notre compteur "SC": ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Possible StringData Ref from Data Obj ->"SC" | :0040A689 68E8F94100 push 0041F9E8 :0040A68E 50 push eax :0040A68F 895C2428 mov dword ptr [esp+28], ebx :0040A693 FFD6 call esi :0040A695 85C0 test eax, eax :0040A697 7514 jne 0040A6AD :0040A699 8B442418 mov eax, dword ptr [esp+18] :0040A69D F7D0 not eax :0040A69F 83F801 cmp eax, 00000001 :0040A6A2 7C09 jl 0040A6AD :0040A6A4 40 inc eax :0040A6A5 898794020000 mov dword ptr [edi+00000294], eax :0040A6AB EB0A jmp 0040A6B7 * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:0040A697(C), :0040A6A2(C) | :0040A6AD C7879402000001000000 mov dword ptr [edi+00000294], 00000001 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040A6AB(U) | :0040A6B7 8D4C2410 lea ecx, dword ptr [esp+10] :0040A6BB 8D542418 lea edx, dword ptr [esp+18] ... Tiens tiens...regardez en 40a6a4 il y a un beau inc eax, c'est sans aucun doute notre incrementation de compteur. Essayons de le modifier par : 40A69F: 83F801 CMP EAX,1 7C09 JL 40A6AD 40 INC EAX -> 90 NOP offset 9aa4h 89879402 .... Je lance mon soft, une bonne dizaine de fois et c'est genial la base de registre n'est plus incrementee :) ...merde il reste un nag screen, on va le retirer en deux secondes: d) Chercher le texte du nag screen et on tombe sur : ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Possible Reference to Dialog: DialogID_007B | :00405ACA 6A7B push 0000007B * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00405AAA(U) | :00405ACC 55 push ebp * Reference To: USER32.DialogBoxParamA, Ord:008Eh | :00405ACD FF1514684200 Call dword ptr [00426814] :00405AD3 C7861C08000000000000 mov dword ptr [esi+0000081C], 00000000 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00405A7E(C) | :00405ADD 8B9618020000 mov edx, dword ptr [esi+00000218] :00405AE3 83EA02 sub edx, 00000002 :00405AE6 F7DA neg edx :00405AE8 1BD2 sbb edx, edx :00405AEA 83E2FE and edx, FFFFFFFE :00405AED 83C203 add edx, 00000003 :00405AF0 52 push edx :00405AF1 53 push ebx ...On remonte d'un cran : * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:00405A17(C), :00405A36(C) | :00405A71 8A8628020000 mov al, byte ptr [esi+00000228] :00405A77 891E mov dword ptr [esi], ebx :00405A79 84C0 test al, al :00405A7B 896E04 mov dword ptr [esi+04], ebp :00405A7E 755D jne 00405ADD :00405A80 56 push esi :00405A81 E82A4D0000 call 0040A7B0 :00405A86 8B9694020000 mov edx, dword ptr [esi+00000294] :00405A8C 8B8698020000 mov eax, dword ptr [esi+00000298] :00405A92 3BD0 cmp edx, eax :00405A94 C7861C08000001000000 mov dword ptr [esi+0000081C], 00000001 :00405A9E 7E0C jle 00405AAC :00405AA0 6A00 push 00000000 :00405AA2 6870B44000 push 0040B470 :00405AA7 53 push ebx * Possible Reference to Dialog: DialogID_007C | :00405AA8 6A7C push 0000007C :00405AAA EB20 jmp 00405ACC Il suffit donc comme vous avez pu le deviner de mettre: 84C0 TEST AL,AL 896E04 MOV [ESI+4],EBP 755D JNZ 405ADD -> 745D JZ 405ADD a l'adresse :00405a7e 56 PUSH ESI ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Voila c'est enfin fini .. enfin presque car il vous reste a supprimer le nag screen dans Emberview32.exe !!! bonne chance :) LuCiFuGe RoFoCaLe [STYX] 1998