Crackme 2 by ByteSlayer


 

Readme

Dans le readme ByteSlayer nous écrit :

Votre mission si vous l'acceptez et de retirer le nagscreen du programme
Toutes les techniques peuvent être utilisé
 

Let's go ...

J'utilise HIEW pour visionner le contenu de l'executable ...

00001F0: 00 00 00 00 00 00 00 00 55 50 58 30 00 00 00 00 ¦         UPX0
0000200: 00 00 04 00 00 10 00 00 00 00 00 00 00 04 00 00 ¦
0000210: 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 E0 ¦
0000220: 55 50 58 31 00 00 00 00 00 60 02 00 00 10 04 00 ¦ UPX1     `
0000230: 00 5A 02 00 00 04 00 00 00 00 00 00 00 00 00 00 ¦  Z
0000240: 00 00 00 00 40 00 00 E0 2E 72 73 72 63 00 00 00 ¦     @   .rsrc
0000250: 00 10 00 00 00 70 06 00 00 0C 00 00 00 5E 02 00 ¦      p       ^
0000260: 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 C0 ¦             @
0000270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ¦
 

c'est packer avec UPX ...

sous dos la commande UPX -d SC-Crackme2.exe
nous décompresse cette executable, procdump peu aussi faire l'affaire .

Je revisionne le resultat avec HIEW ....

000400: 04 10 40 00 03 07 42 6F 6F 6C 65 61 6E 01 00 00 ¦   @   Boolean
000410: 00 00 01 00 00 00 00 10 40 00 05 46 61 6C 73 65 ¦         @  False
000420: 04 54 72 75 65 8D 40 00 2C 10 40 00 01 07 49 6E ¦  True @ , @   In
000430: 74 65 67 65 72 04 00 00 00 80 FF FF FF 7F 8B C0 ¦ teger        
000440: 44 10 40 00 01 04 42 79 74 65 01 00 00 00 00 FF ¦ D @   Byte
000450: 00 00 00 90 58 10 40 00 01 04 57 6F 72 64 03 00 ¦     X @   Word
000460: 00 00 00 FF FF 00 00 90 6C 10 40 00 01 08 43 61 ¦         l @   Ca
000470: 72 64 69 6E 61 6C 05 00 00 00 00 FF FF FF FF 90 ¦ rdinal
000480: 84 10 40 00 0A 06 53 74 72 69 6E 67 90 10 40 00 ¦   @   String  @
 

Ca c'est coder avec Delphi, donc les BPX sur les MessageBox ne sont pas valide.

- Hop, on lance DeDe, l'indispensable sourcer de DaFixer / TMG
- Un click sur le bouton "Ouvrir"  ( Il est possible de configure DeDe en Français )
- Click sur le bouton "Tache", Dump réussi ...

On peut voir dans la section "Procedures", l'evenement "FormCreate" à l'adresse 0452208h (RVA)

Et la bingo !!!

* Possible String Reference to: 'Hehe je suis un nag'
|
00452308   B81C234500             mov     eax, $0045231C

* Reference to: dialogs.ShowMessage(System.AnsiString);
|
0045230D   E89A90FDFF             call    0042B3AC
00452312   C3                     ret
 

Donc un patch à l'offset 452308 l'octet B8 par C3