******************************************************************************
{{{{{{{{{{{{{{{{{{{{{{{{{{{{  Conseal Pc FireWall  }}}}}}}}}}}}}}}}}}}}}}}}}}}
******************************************************************************

après les cracks que je viens de faire pour vous(ayant du avancer mon horloge pour faire des tests) la période d'évaluation de Conseal Pc est terminée :-( Il va donc falloir y remédier. Nous lanceons le programme. Il nous affiche une boite de message informations :
"ConSeal Pc FireWall"
"The trial Period has expired..."
Nous avons dit que nous le faisions en partie avec SoftIce. Nous faisons donc CTRL+D puis nous nous préparons en tapant ceci :
"code on"
"data"
"r" (si vous avez un vieux SoftIce)
puis nous allons mettre un breakpoint sur cette boite de message:
"bpx messageboxa"
Nous sortons de SoftIce en faisant CTRL+D. Il ne nous reste plus qu'a relancer le programme et à attendre (2 secondes :) bingo SoftIce break. Voila ce que vous devez voir apparaître:
"break due to bpx USER!32MessageBoxA"
mais si vous regardez la ligne verte au dessus il y a marqué :
------- USER32!text+322B -------
On est donc dans les apis de windows. Revenez dans le prog avec F12 (car l'api est appelée par un call)
------- FRW!text+4F0A -------
Voila c'est bon. Nous regardons l'adresse où nous nous trouvons : 00405F19 puis nous enlevons les breakpoints: "bc*" Nous serions tenté de le désassembler avec W32dasm, eh bien devinez quoi il, est crypté. C'est là que va nous servir un des meilleurs programmes au monde.... j'ai nommé...... Procdump ! Ce programme est distribué en tant que freeware. Vous faites PE EDITOR et choisissez FRW.exe. Allez dans sections. Vous voyez : WWP32 à la fin. C'est le crypteur utilisé. Quittez tout ça et choississez "UNPACK" puis dans la liste WWPack32 puis ok. Le firewall va se lancer, cliquez alors sur "OK" et laissez faire Procdump. ProcDump décrypte le programme. Enregistrez le programme décrypté en frwd.exe.
Qu'aurions nous fait sans lui ?Je vous le demande :)

Nous reprenons SoftIce et nous placeons un "bpx messageboxa" mais cette fois ci nous lanceons frwd.exe et nous regardons où est l'appel à cette boite de message. Cela a pas changé depuis tout à l'heure (ce qui montre qu'en fait ProcDump a dumpé l'exe). Arrivé où nous sommes, nous faisons un autre F12 pour remonter car nous ne voyons pas beaucoup de sauts conditionnels. Nous arrivons ici :
------------------------------------------------------------------------
:0041135C   6A01                  push 00000001
:0041135E   E846220100            call 004235A9     !? suspect ?!
:00411363   83C404                add esp, 00000004
:00411366   8845F0                mov byte ptr [ebp-10], al
:00411369   8A45F0                mov al, byte ptr [ebp-10]
:0041136C   A200EB4300            mov byte ptr [0043EB00], al
:00411371   33C0                  xor eax, eax
:00411373   A004EB4300            mov al, byte ptr [0043EB04]
:00411378   85C0                  test eax, eax
:0041137A   0F841C010000          je 0041149C
:00411380   33C0                  xor eax, eax
:00411382   A000EB4300            mov al, byte ptr [0043EB00]
:00411387   85C0                  test eax, eax
:00411389   0F842A000000          je 004113B9     ! intéressant !
:0041138F   A1E4EA4300            mov eax, dword ptr [0043EAE4]
:00411394   50                    push eax
:00411395   8B45F4                mov eax, dword ptr [ebp-0C]
:00411398   50                    push eax
:00411399   E8354AFFFF            call 00405DD3      !!! On arrive ici !!!
:0041139E   83C408                add esp, 00000008
------------------------------------------------------------------------
Regardez donc tout ça avec W32dasm. Vous verrez que le 2eme call sert seulement a afficher des messages comme quoi la licence n'est pas bonne. Nous voyons un JE au dessus du CALL. Habituellement, je n'attaque pas comme ceci mais comme il faut faire simple... On va forcer ce JE en le transformant en JMP. Il n'existe pas de JMP de la forme 0F!! mais celui qui le remplace est E9. Nous avons donc une instruction en trop c'est pourquoi nous mettons 90 qui correspond a NOP c'est à dire no operation. Nous recherchons donc avec notre éditeur hexadécimal :
0F842A000000A1E4EA4300 que nous modifions en:
90E92A000000A1E4EA4300
On relance le programme et cela fonctionne ! miracle. Cependant quelques secondes après le menu, rules se grise. Nous sortons la doc des apis Win32 (vous la trouverez sur crackstore) et nous voyons quelle API fait cela.On trouve l'API : EnableMenuItem. Voyez le commentaire par vous mêmes : The EnableMenuItem function enables, disables, or grays the given menu item. ça à l'air d'être cela qui s'est produit. Nous reprenons SoftIce et nous tapons :
bpx enablemenuitem
Puis nous relançons Conseal. L'api est utilisée plusieurs fois alors nous faisons F5 pour continuer jusqu'à voir notre menu rules grisé. A l'arrivé nous trouvons ceci :
------------------------------------------------------------------------
:004114E0   33C0                  xor eax, eax
:004114E2   8A45F8                mov al, byte ptr [ebp-08]
:004114E5   85C0                  test eax, eax
:004114E7   0F858D000000          jne 0041157A     !! ahahah !!

* Possible Reference to String Resource ID=00001: "Description"
                                  |
:004114ED   6A01                  push 00000001

* Possible Ref to Menu: CONSEAL_FW, Item: "Change Ruleset File.."
                                  |
:004114EF   68429C0000            push 00009C42
:004114F4   A1E0EA4300            mov eax, dword ptr [0043EAE0]
:004114F9   50                    push eax

* Reference To: USER32.EnableMenuItem, Ord:00B0h   !!! notre API !!!
                                  |
:004114FA   FF1540874600          Call dword ptr [00468740]

* Possible Reference to String Resource ID=00001: "Description"
                                  |
:00411500   6A01                  push 00000001

* Possible Ref to Menu: CONSEAL_FW, Item: "Rules"  ! héhéhé !
------------------------------------------------------------------------
Bon ici aussi il n'y a rien de plus simple. Si les informations sont fausses le programme ne saute pas et si elles sont bonnes, il saute et notre menu reste opérationnel. Nous recherchons donc avec notre éditeur hexadécimal :
0F858D0000006A01 que nous modifions en:
90E98D0000006A01
Décidement ils aiment bien les 0F... Bon nous relançons ! bingo ça RuLeZ. Et maintenant que nous l'avons cracké nous allons signer notre oeuvre avec un peu de reverse engineering. Dans la barre status, il y a marqué "Firewall is up". Nous allons le changer en "Hccc!". C'est pas bien difficile, nous prenons notre éditeur hexa et nous recherchons cette string. C'est la deuxième. "la première servant dans le log". Vous écrivez Hccc! à la place et vous effacer les lettres en trop avec des espaces. Il reste encore quelquechose. Dans la fenêtre "about" il y a marqué :" licensed to : Trial User". Cependant là cette string se trouve dans la base de registre:

HKEY_LOCAL_MACHINE\\security\\Signal9\\FIREWALL\\1.3\\UserName
Il suffit de mettre la valeur avec votre nom. Je vous expliquerai bien comment faire pour que cette valeur soit toujours la même quelque soit la base de registre mais cela va devenir trop difficile à comprendre et ce tut s'adresse aux débutants alors.... De plus cela n'a absolument aucune utilité.

C'est ici que s'achève ce tutorial sur Conseal Pc Firewall. Je suis certain que vous avez aussi envie de cracker des jeux, donc voici un petit extra : le crack de Half-Life 1.1.0.0 dans le prochain chapitre :)

TiPiaX/VDS