			 > AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG < 

CrAcKinG TutoRiaL bY ChendLer

stuff:

Prog: Crackme2 by massh / CookieCrk
protect: s/n
skill: newbies

Topic: Jak zlamac Crackme2 by massh / CookieCrk
__________________________________________________

Wstep: 

Witam znowu. Dzis zajmiemy sie obgadaniem jak zlamac proga podanego w stuff
Jest dla newbies. Jezeli newbies go nie zlamie zapraszam do lektury.

LeT's gO

Odpalamy proga i widzimy calkiem fajne okno dialogowe. Chyba wiecie co 
trza zrobic. Dobra uzupelnij pola, nie musisz tak jak ja.

User: Chendler
Serial: 191919

<><> Pause <><>

Jezeli crackujesz programy a ci nie idzie to sie nie zalamuj. Mi z poczatku
tak wlasnie szlo. Ale coraz lepiej mi idzie. To tylko kwestia czasu. Pamietaj
nie wszystkie programy daj nam na dloni seriale. Przy niektorych progach trza
sie zastanowic. Cracking jest sztuka ktora wymaga duzo cierpliwosci. Mozna
przyjac ze jest to tak jakby przkesztalcona matematyka. Np.

w eax mamy serial jaki sprawdz:

? eax

00123456 0001193046 itd....

a w ebx pewna liczba. Nie wiemy jaka i nie potrzebujemy wiedziec. Mamy kod
he he

 xor ebx,eax
 cmp ebx, 0AB7819

to jest bardzo prosta procka sprawdzajaca. W ebx po z xorowaniu mamy liczbe
musi ona byc rowna (po zxorowaniu 00AB7819h)
ale jaka to liczba. Otoz przypomnijmy sobie dzialania z matematyki

ebx = x
eax = 123456
itd. 
Teraz dzialanie (przyjmijmy ze xor to dodawanie)

x + 123456 = 0AB7819
x = 0AB7819 - 123456

To jest tzw. odwracanie procedury.

czyli wiesz co zrobic aby prog by zarejestrowany

? eax^0AB7819

i mamy wynik po odwroceniu.

00B94C4F 0012143695

i umiemu odwracac procki.

<><> EnD Pause <><>

Standardowo prog sie lapie na bpx getwindowtexta.
Dalej chyba wiesz co zrobic. 
Gdy przejdziesz przez ret'a
to zobaczysz:

:0040116F 85C0                    test eax, eax
:00401171 742F                    je 004011A2
:00401173 6824214000              push 00402124
:00401178 6804214000              push 00402104
:0040117D E8DF000000              call 00401261 ;ehm co to wejdz ------------------
										   |
:00401182 85C0                    test eax, eax ;jezeli rowna sie jeden to good    |
:00401184 7407                    je 0040118D                                      |
:00401186 BB8A204000              mov ebx, 0040208A                                |
:0040118B EB05                    jmp 00401192 ; skocz to good                     |
         									   |
:0040118D BB71204000              mov ebx, 00402071                                |
:00401192 6A00                    push 00000000                                    |
:00401194 6868204000              push 00402068                                    |
:00401199 53                      push ebx                                         |
:0040119A FF7508                  push [ebp+08]                                    |
:0040119D E89B020000              Call 0040143D ; wywolanie messageboxa            |
:004011A2 EB8C                    jmp 00401130                                     |
										   |
                     --------------------------------------------------------------
                     |
                     |
    ---------------- x ----------------    
:00401261 A160204000              mov eax,[00402060]        (1)
:00401266 390564204000            cmp [00402064], eax       (2)
:0040126C 752F                    jne 0040129D              (3)
:0040126E 33C0                    xor eax, eax              (4)
:00401270 8B7C2404                mov edi,[esp+04]          (5)
:00401274 8B742408                mov esi,[esp+08]          (6)
:00401278 0FB61F                  movzx ebx,[edi]           (7)
:0040127B 0FB616                  movzx edx,[esi]           (8)
:0040127E 80FA30                  cmp dl, 30                (9)
:00401281 7C1A                    jl 0040129D
:00401283 80FA39                  cmp dl, 39
:00401286 7F15                    jg 0040129D
:00401288 80EA30                  sub dl, 30            
:0040128B 83E30F                  and ebx, 0000000F         (10)
:0040128E D0EB                    shr bl, 1                 (11)
:00401290 2ADA                    sub bl, dl               
:00401292 7509                    jne 0040129D           
:00401294 47                      inc edi          |
:00401295 46                      inc esi          |   
:00401296 803F00                  cmp [edi], 00    | ITD.
:00401299 75DD                    jne 00401278     |
:0040129B EB04                    jmp 004012A1     |

Uaa. Fajne co? To jest ehm no wiesz co ci bede mowil.

(1) - Kopijue do eax, co sprawdz. NIe to nie serial
? eax
0000008 itd.
To cos oznacza ile ma imie znakow moje 8.

(2) - porownuje ilosc cyfr z seriala z iloscia znakow z name
      jesli sie zgadza to good.

To wyjdz z progsa i wpisz tyle samo cyfr w serialu z znakow w name
i wroc. Czekamy na ciebi he he.

(3) - skok jesli rowne
(4) - zeruje eax
(5) - do edi idzie name
(6) - do esi idzie serial
(7) - do ebx pierwszy znak name
(8) - do edx pierwszy znak seriala
(9) - sprawdza i ble ble.

(10) - mnozy ebx, z jakas wartoscia. Uff To jak dostac serial prawdziwy.
zobacz shr bl,1 
? bl
.... dane .....

jakas liczba tak to pierwszy znak seriala
i przechodzi robiac petle i sprawdzaj jakie sa tam znaki.
Jak? 
Gdy dojdziesz do

:00401292 7509                    jne 0040129D 

zrob r fl z

i sprawdzaj. Mam nadzieje ze zrozumiales.

Dla Chendler
    14272621

I Great Work.

chendler19@pocztaa.onet.pl

		 > AAOCG <> AAOCG <> AAOCG <> AAOCG <> AAOCG < 