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

-=-=-=-=-=-=-=-=-=-=-=-=-=-i n f o r m a t i o n s-=-=-=-=-=-=-=-=-=-=-=-=-=-

   Tut name   : Crackme v2.21 by Pokropek
   Date       : 27 Jun 2000
   Writed by  : Jube
   What       : Tutorial

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-t u t o r i a l-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Bedzie nam potrzebne kilka rzeczy:
1. Crackme v2.21 by Pokropek
   http://www.crackmes.prv.pl/ (nr 70)
2. SoftIce - ja mam wersje 4.00 ale moze byc nowsza
   http://www.cookiecrk.z.pl/
3. Mozg :) i ochota do czytania

Zaczynamy!

Sprawdzamy najpierw czy autor (Pokropek) dolaczyl do programu jakis tekst...
i co ? u mnie nie ma :( wiec idziemy dalej i uruchamiamy krakmika.
Najpierw naciskamy About (moze tu cos znajdziemy do poczytania). 
O ho ! Widzimy ze autor nalezy do tej slynnej grupki crackerskiej :)))
SeveN TeaM. Oprocz tego dowiadujemy sie ze [skill : easy].
Zaraz sprawdzimy czy sie zgadza :)

Wpisujemy siakies (widzieliscie reklame frugo ???) dane:

Name : Jube
Code : fuckyou

Teraz naciskamy Check i widzimy ze nasze dane sa zle, ciekawe dlaczego ? :)
No dobra walimy sobie pulapke na hmemcpy i lecimy jeszcze raz ...
hehe znowu nic, no to tym razem wpisujemy
:bpx getwindowtextlengtha
To juz zadzialalo wiec zabieramy sie za naszego krakmika :)

017F:004077CD  E8F6CEFFFF          CALL      USER32!GetWindowTextLengthA
017F:004077D2  8BF0                MOV       ESI,EAX
017F:004077D4  83FE05              CMP       ESI,05
017F:004077D7  7E7A                JLE       00407853

widzimy ze funkcja zwraca w eax wartosc 4 czyli dotyczy to naszego Name.
Tutaj dowiadujemy sie ze dlugosc musi byc wieksza od 5 czyli minimum 6.
Kilka razy F10 i widzimy ze dlugosc code musi byc wieksza od 8:

017F:00407859  E86ACEFFFF          CALL      USER32!GetWindowTextLengthA
017F:0040785E  8BF0                MOV       ESI,EAX
017F:00407860  83FE08              CMP       ESI,08
017F:00407863  0F8E15010000        JLE       0040797E

Teraz wychodzimy (F5) i zmieniamy nasze dane na

Name : Jube 7TeaM
Code : fuckyoutwice

Tym razem przechodzimy spelniamy warunki i idziemy dalej :

017F:004077ED  E8CECEFFFF          CALL      USER32!GetWindowTextA
017F:004077F2  33C0                XOR       EAX,EAX
017F:004077F4  8945FC              MOV       [EBP-04],EAX
017F:004077F7  8BC6                MOV       EAX,ESI
017F:004077F9  85C0                TEST      EAX,EAX
017F:004077FB  7C0F                JL        0040780C
017F:004077FD  40                  INC       EAX
017F:004077FE  33D2                XOR       EDX,EDX

Tutaj prog pobiera nasze Name

017F:00407800  33C9                XOR       ECX,ECX
017F:00407802  8A0C13              MOV       CL,[EDX+EBX]
017F:00407805  014DFC              ADD       [EBP-04],ECX
017F:00407808  42                  INC       EDX
017F:00407809  48                  DEC       EAX
017F:0040780A  75F4                JNZ       00407800

a to jest procedurka, ktora sumuje kody ASCII wszystkich znakow naszego Name
i wrzuca sume do [EBP-04].

017F:0040780C  817DFCD6020000      CMP       DWORD PTR [EBP-04],000002D6

Wartosc z [EBP-04] jest porownywana z 000002D6. Zaraz, zaraz, przeciez tam
jest suma naszych znakow :) tak wlasnie :)

017F:00407813  752F                JNZ       00407844

proponuje nie bawic sie Name tylko zmienic flage (r fl z) i jedziemy dalej:

017F:00407815  8D45EC              LEA       EAX,[EBP-14]
017F:00407818  8BD3                MOV       EDX,EBX
017F:0040781A  E849B9FFFF          CALL      00403168
017F:0040781F  8D45E8              LEA       EAX,[EBP-18]
017F:00407822  BAC8794000          MOV       EDX,004079C8
017F:00407827  E820B8FFFF          CALL      0040304C

to olewamy :)))

017F:0040782C  8B45EC              MOV       EAX,[EBP-14]
017F:0040782F  8B55E8              MOV       EDX,[EBP-18]
017F:00407832  E865BAFFFF          CALL      0040329C
017F:00407837  7504                JNZ       0040783D

no tak ten kawalek kodu wyglada znajomo :) 
sprawdzamy co kryje sie pod rejestrami:

:d eax

0187:00B60860 | 4A 75 62 65 20 37 54 65-61 4D (Jube 7TeaM)

:d edx

0187:004079C8 63 72 61 63 6B 6D 65 (crackme)

Po wywolaniu funckji mamy skok a chyba nie powinno go byc.
Hehe :) czyzby to bylo zwykle porownanie stringow ? Zobaczmy ... Wychodzimy
z SI (F5 - chyba to juz wiesz :). Wpisujemy w polu Name : crackme
i probujemy Check. O to chodzilo :) suma znakow tym razem sie zgadza, takze
funckja porownujaca zwraca pozytywny wynik bo skok sie nastepuje. 
Dobra to Name juz mamy teraz zostal jeszcze Code :

017F:0040787E  E83DCEFFFF          CALL      USER32!GetWindowTextA
017F:00407883  33C0                XOR       EAX,EAX
017F:00407885  8A4303              MOV       AL,[EBX+03]

w ebx jest nasz Code wiec do eax jest wrzucony 4 znak naszego code.

017F:00407888  33D2                XOR       EDX,EDX
017F:0040788A  8A530C              MOV       DL,[EBX+0C]

do edx wrzucony jest 13 znak naszego code

017F:0040788D  83F836              CMP       EAX,36

porownanie 4 znaku z 36h czyli "6" - to jest nasz nowy 4 znak

017F:00407890  7507                JNZ       00407899
017F:00407892  33C0                XOR       EAX,EAX
017F:00407894  8945F4              MOV       [EBP-0C],EAX
017F:00407897  EB07                JMP       004078A0
017F:00407899  C745F401000000      MOV       DWORD PTR [EBP-0C],00000001
017F:004078A0  83FA33              CMP       EDX,33

porownanie 13 znaku z 33h czyli "3" - to jest nasz nowy 13 znak
zmienimy Code na : fuc6youtwice3
jedziemy dalej i po pewnym czasie dochodzimy do :

017F:004078C7  33C9                XOR       ECX,ECX
017F:004078C9  33D2                XOR       EDX,EDX
017F:004078CB  8A140B              MOV       DL,[ECX+EBX]
017F:004078CE  0155F8              ADD       [EBP-08],EDX
017F:004078D1  41                  INC       ECX
017F:004078D2  48                  DEC       EAX
017F:004078D3  75F4                JNZ       004078C9
017F:004078D5  817DF850030000      CMP       DWORD PTR [EBP-08],00000350

hehe :) znowu suma znakow tyle ze tym razem nie Name lecz Code. suma musi 
byc rowna 350h a u nas wyszlo 520h. Dlaczego tak duzo ? moze przez to ze
uzylismy liter - sprobujmy uzyc cyfr.

Code: 1116111111113

Tym razem wyszlo 284h - teraz juz lepiej bo jest mniej niz ma byc i mozemy
sobie cos dodac :) tyko co ? zobaczmy ile nam brakuje ...

W lini polecen SI
: ? 350 - 284
wyszlo nam CCh
ale jak to wpisac ? po co sie meczyc podzielimy to na 2
: ? CC / 2
wyszlo 66h czyli "f"

Teraz musimy dopisac do naszego Code dwie litery "f" i powinno byc dobrze.

Code: 1116111111113ff

Wylaczamy wszystkie pulapki (bd *) i naciskamy Check.
Dowiadujemy sie ze jestesmy dobrym chlopczykiem :)
(a co bedzie jak zlamie to dziewczyna ???)
Taki komunikat oznacza ze crackme zostalo zlamane a to jest dobry powod
zeby isc na piwo (kazdy powod jest dobry) albo cos mocniejszego :)

To juz koniec :) Mam nadzieje ze jeszcze sie spotkamy :)
Wszystkie uwagi ------> jube@poland.com

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

  Prezident:      MaxiBogas....................founder/coder/cracker/writer
  VizePrezident:  Plastek......................founder/coder/cracker/writer
  Seniors:
                  pawlos.....................................cracker/writer
                  Mr. Ketchup................................cracker/writer
                  Rusty.............................................cracker
  Division:
                  Jube.................................cracker/coder/writer
                  {ATOM}....................................decoder/cracker
                  Pokropek...................................cracker/writer
  Trial:
                  lukasw............................................cracker
                  Dumboo............................................cracker
                  zoomek.....................................writer/cracker
  WebPage:
                  LIAR..............................webmaster/graphic/coder
                  _2000_.......................................server_admin

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

  Greets to : Plastek, Maxibogas, imaginative
     groups : CrackPL, AAOCG, CookieCrk

  My e-mail: jube@poland.com
             ~~~~~~~~~~~~~~~
  SeveN TeaM - Official WebPage:  http://www.7team.z.pl
                                  ~~~~~~~~~~~~~~~~~~~~~
-=-=-=E-O-F=-=-=-=E-O-F=-=-=-=E-O-F=-=-=-=E-O-F=-=-=-=E-O-F=-=-=-=E-O-F=-=-=-