Cible: Crackme#2 Static Revenge

Outils: WinDasm + Editeur Hexa

 

Bon, celui la ressemble au précédent, en un tout petit peu plus dur... Ouvrez avec WinDasm, et vous voyez ca:

 

//******************** Program Entry Point ********
:00401000 6A00                    push 00000000
:00401002 6870224000              push 00402270
 
* Possible StringData Ref from Data Obj ->"                    ..._¿o©º°&hibar;°º©o¿_ "
                                        ->"   Shmeit Corp    _¿o©º°&hibar;°º©o¿_...
 
 "
                                        ->"                                  "
                                        ->"     Static REvenge's Crackme "
                                        ->"#2 
 
Dans ce Crackme, il faut "
                                        ->"faire en sorte qu'un message de "
                                        ->"réussite de déplombage apparaisse.
Si "
                                        ->"vous echouez, un message d' échec "
                                        ->"vous le dira...
"
                                  |
:00401007 6800204000              push 00402000
:0040100C 6A00                    push 00000000
 
* Reference To: USER32.MessageBoxA, Ord:0000h
                                  |
:0040100E E834000000              Call 00401047        ; affiche le message d'entré
:00401013 6A10                    push 00000010
 
* Possible StringData Ref from Data Obj ->"FATAL ERROR !!"
                                  |
:00401015 68A4224000              push 004022A4
 
* Possible StringData Ref from Data Obj ->"Ahhh! Tu n'as pas reussis à déplomber "
                                        ->"cette protection et ca se comprend "
                                        ->"vu qu'elle est inviolable... Arf!
 
Nan, "
                                        ->"je plaisante... Aller quoi, c'est "
                                        ->"pas si difficile ;)
"
                                  |
:0040101A 68C8214000              push 004021C8
:0040101F 6A00                    push 00000000
 
* Reference To: USER32.MessageBoxA, Ord:0000h
                                  |
:00401021 E821000000              Call 00401047        ; affiche le bad message
:00401026 6A00                    push 00000000
 
* Reference To: KERNEL32.ExitProcess, Ord:0000h
                                  |
:00401028 E820000000              Call 0040104D        ; quit
:0040102D 6A40                    push 00000040
 
* Possible StringData Ref from Data Obj ->"Bouh! CRACKER DETECTED!"
                                  |
:0040102F 688C224000              push 0040228C
 
* Possible StringData Ref from Data Obj ->"Félicitations! Tu as reussi à "
                                        ->"déplomber cette super sécurité "
                                        ->"à deux roules ;p
Bon aller, c'est "
                                        ->"pas mal pour un début!
 
Static "
                                        ->"REvenge
Shmeit Corp  www.shmeitcorp.cjb.net"
                                  |
:00401034 681E214000              push 0040211E
:00401039 6A00                    push 00000000
 
* Reference To: USER32.MessageBoxA, Ord:0000h
                                  |
:0040103B E807000000              Call 00401047        ; affiche le good message
:00401040 6A00                    push 00000000
 
* Reference To: KERNEL32.ExitProcess, Ord:0000h
                                  |
:00401042 E806000000              Call 0040104D        ; quit
 

En faite c'est assez simple aussi, on arrive, on affiche le message d'entré, et ensuite on affiche le bad message et on quitte. Nous on voudrait ne pas afficher le mauvais message et aussi ne pas quitter. Donc on noppe le Call en 00401021 ( il affiche le bad message ) et aussi celui en 00401028 ( il nous fait quitter ).

 

Et voilà crackme cracké :o)

  

@+ fredbug