                           _______                   ______
                          |   _   |-----.--.--.-----.   _  \
                          |   1___|  -__|  |  |  -__|.  |   |
                          |____   |_____|\___/|_____|.  |   |
                          |:  1   |                 |:  |   |
                          |::.. . | POLISH CRACKERS |::.|   |
                          `---===='__             __`-==_---'
                             |       |-----.---.-.   Y   |
                             |.|   | |  -__|  _  |.      |
                             `-|.  |-'_____|___._|. \_/  |
                               |:  |             |:  |   |
                               |::.|             |::.|:. |
                               `---'             `--- ---'

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=i n f o r m a t i o ns-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
   CrackME name: CrackMe#2 by Lukian
   Date        : 21.01.2001 year
   Cracked by  : Kali
   What        : tut ;)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-tutorial-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Czesc

Dzis zajmiemy sie CrackMe2 by Lukian, ze wzgledu, ze mialo ono status "Uncracked" na stronie 
crackmes.prv.pl, postanowilem sie pomeczyc, zlamalem i napisalem tego tutoriala. Crackme to nie jest trudne. Let's do it! 

Potrzebujemy:

Only SoftICE 


Uruchamiamy crackme i wpisujemy cos, ja wpisalem "99663322", wchodzimy do SI (Ctrl+D) i
oczywiscie zakladamy:
bpx getwindowtexta
bpx getdlgitemtexta

Wychodzimy (F5) i wciskamy <Check It!>, SI przejal kontrole i znajdujemy sie za wywolaniem
GetDlgItemTextA, widzimy:

 00401162    call    USER32!GetDlgItemTextA
 00401167    mov     [004032C4],EAX
 0040116C    call    004011A1        <-- tu wchodzimy, bo inaczej
 00401171    jmp     0040118D        <-- wyjazd i "Unfortunately it isn't correct Serial"

Po wejsciu mamy:

004011A1     cmp     ax,08           <-- nasz serial musi miec 8 znakow
004011A5     jne     004011EB        <-- jak nie ma to wyjazd (u nas sie zgadza)
004011A7     mov     eax,[004030C4]  <-- 4 pierwsze znaki w eax 
004011AC     mov     edx,[004030C8]  <-- nastepne 4 znaki w edx
004011B2     xor     eax,edx         <-- xoruje nasze 4 pierwsze znaki 4 nastepnymi 
004011B4     add     eax,edx         <-- do zxorowango wyniku dodaje 4 ostatnie znaki 
004011B6     cmp     eax,3542373D    <-- calosc porownuje z 3542373D
004011BB     jne     004011BF        <-- jak nie rowne to wyjazd
004011BD     jmp     004011C1        <-- skocz do sprawdzenia 4 kolejnych znakow

Tutaj jest sprawdzanie 4 pierwszych znakow naszego seriala na podstawie 4 kolejnych.
Procke te idzie odwrocic:

eax=36363939 "6699" <-- 4 pierwsze znaki

edx=32323333 "2233" <-- kolejne 4 znaki

eax=x 

Po odwroceniu wyglada to nastepujaco:

x= 3542373D sub 32323333 
x= to co wyszlo xor 32323333

Obliczamy to w SI:

?3534373D - 32323333 = 0310040A

?0310040A^32323333 = 31223739 " 1"79 " 

Czyli pierwsze 4 znaki na podstawie 4 pozostalych to "97"1" 


Cofamy sie do Crackme i wpisujemy "97"13322"

 
004011BB     jne     004011BF        <-- ten skok juz sie nie wykonuje
004011BD     jmp     004011C1        <-- a tu skaczemy do sprawdzenia kolejnych 4 znakow


Jestesmy tu:

004011C1     xor     edx,eax         <-- tu xoruje kolejne 4 znaki z 3542373D 
004011C3     add     edx,eax         <-- dodaje do nich 3542373D
004011C5     cmp     edx, 39BC3A4B   <-- i porownuje z 39BCA4B 
004011CB     jnz     004011CF        <-- jak zle to go away bad boy
004011CD     jmp     004011F4        <-- good jump

I znow odwracamy:

eax=3542373D

edx=32323333

edx=x 

Po odwroceniu wyglada to nastepujaco:

x= 39BC3A4B sub 3542373D
x= to co wyszlo xor 3542373D

Obliczamy to w SI:

?39BC3A4B - 3542373D = 047A030E 

?047A030E^3542373D = 31383433 "1843" 

Czyli 4 nastepne znaki to 3481

Nasz serial ma juz postac: "97"13481" ale niestety  nie jest on prawidlowy.
Musimy jeszcze raz obliczyc 4 pierwsze znaki seriala. Dlaczego? Otoz wartosc edx zmienila 
sie. Crackme oblicza pierwsze 4 znaki na podstawie 4 nastepnych. Czyli jesli 4 ostatnie 
znaki sie zmienily to 4 pierwsze tez sie zmienia. Logiczne, prawda?
Obliczylismy juz 4 ostatnie znaki i teraz na ich podstawie obliczymy 4 pierwsze.

Czyli jeszcze raz, wpisujemy: "97"13481", zakladamy pulapki i idziemy F10, do momentu pierweszego sprawdzenia:

004011B2     xor     eax,edx         
004011B4     add     eax,edx        
004011B6     cmp     eax,3542373D    

Tym razem:

eax=31223739 "1"79" <-- to musimy obliczyc

edx=31383433 "1843" <-- to juz zmieniona wartosc edx 

eax=x 

Po odwroceniu wyglada to nastepujaco:

x= 3542373D sub 31223739 
x= to co wyszlo xor 31223739

Obliczamy to w SI:

?3534373D - 31383433 = 040A030A

?040A030A^31383433 = 35323739 "5279"

No i mamy pierwsze 4 good znaki: 9725

Czyli caly serial ma postac: "97253481" 

Wpisujemy go i przed nami piekny messagebox z napisem "Congratulations you Crack Me;-)"


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=members of SeveN TeaM-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  Prezident:      Mr. Ketchup..................founder/coder/cracker/writer
  VizePrezident:  Jube.........................founder/coder/cracker/writer
  Seniors:
                  pawlos.....................................cracker/writer
  Division:
                  {ATOM}....................................decoder/cracker
                  Jelit Wypatrosz...................................cracker
                  zoomek.....................................writer/cracker
  Trial:
                  kelog.............................................cracker
                  Kali..............................................cracker
                  klemik............................................cracker
  WebPage:
                  Civ.pl.......................................server_admin
                  LIAR..............................webmaster/graphic/coder

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o t h e r s-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Greets to : Maxibogas, kelog, Jube, Mr.Ketchup, NoiR^, ner, oles`, Liquid, Ma-rYu-sH,
              GREK, eax, Chendler, Creeper^,cinus
 
     groups : CrackPL, AAOCG, CookieCrk, CHInc


  My e-mail: kalicrk@poczta.onet.pl
             ~~~~~~~~~~~~~~~~~~~~~~
  SeveN TeaM - Official WebPage:  http://www.7team.z.pl
                                  ~~~~~~~~~~~~~~~~~~~~~

=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=-
