Cible: Crackme#3 Static Revenge
Outils: WinDasm + Editeur Hexa
Ce crackme, et sûrement le plus dur de cette série, mais facile quand même, hehe :) On l'ouvre avec WinDasm, et on obtient ca:
//******************** Program Entry Point ********
:00401000 6A10 push 00000010
:00401002 6850214000 push 00402150
* Possible StringData Ref from Data Obj ->"Félicitations! Tu as reussi à "
->"déplomber cette super sécurité "
->"à deux roubles ;p
Bon aller, c'est "
->"pas mal pour un début!
Static "
->"REvenge
Shmeit Corp www.shmeit-corp.otg"
|
:00401007 B800204000 mov eax, 00402000 ; pousse le good message sur la pile
:0040100C B800000000 mov eax, 00000000
* 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 ;)
"
|
:00401011 B8A8204000 mov eax, 004020A8
:00401016 50 push eax ; pousse le bad message
:00401017 6A00 push 00000000
* Reference To: USER32.MessageBoxA, Ord:0000h
|
:00401019 E807000000 Call 00401025 ; affiche le bad message
:0040101E 6A00 push 00000000
* Reference To: KERNEL32.ExitProcess, Ord:0000h
|
:00401020 E806000000 Call 0040102B
C'est encore assez simple, ce coup-ci c'est avec les paramétres des messagebox que ca se joue. On voit qu'à un moment il pousse le good message, mais après il pousse le bad message ! Il suffit de soit nopper les paramétres qui pousse le mauvais message, mais ca ferais beaucoup de nop, on peut aussi faire qu'il pousse le good message à la place du mauvais. Ainsi: mov eax, 004020A8 devient mov eax, 00402000 . Et la on a le bon message quand on lance ce crackme :-)
@+ fredbug