cel: Crackme #01 by emkey^Un
poziom: newbies
czym: softice
kto: shield^UnderPl (shield@box43.pl)

a wiec mamy crackme od emkey'a. jego pierwsze. no wiec standardowo:
uruchamiamy program. wpisujemy jakies haslo. zastawiamy pulapki
na pobranie txtu. naciskamy "Czek:)", jestesmy znowu w si.

oto co nam sie ukazuje:

:004010F9 E802010000              Call 00401200
:004010FE 57                      push edi
:004010FF 56                      push esi
:00401100 BE10324000              mov esi, 00403210
:00401105 8B36                    mov esi, dword ptr [esi]
:00401107 C1C60F                  rol esi, 0F
:0040110A C1EE04                  shr esi, 04
:0040110D 83C608                  add esi, 00000008
:00401110 81FE0BC97A0B            cmp esi, 0B7AC90B
:00401116 754B                    jne 00401163
:00401118 BE10324000              mov esi, 00403210
:0040111D 83C604                  add esi, 00000004
:00401120 8B36                    mov esi, dword ptr [esi]
:00401122 81F643726163            xor esi, 63617243
:00401128 7539                    jne 00401163
:0040112A BE10324000              mov esi, 00403210
:0040112F 83C608                  add esi, 00000008
:00401132 8B36                    mov esi, dword ptr [esi]
:00401134 C1CE17                  ror esi, 17
:00401137 C1C603                  rol esi, 03
:0040113A 81F628058619            xor esi, 19860528
:00401140 81C611111111            add esi, 11111111
:00401146 81EE7DC1939C            sub esi, 9C93C17D
:0040114C 7515                    jne 00401163

czyli bardzo proste crackme. dochodzimy do linii 401107, w esi mamy
pierwsze 4 litery naszego wpisanego hasla. mamy pierwsze sprawdzenie:

:00401107 C1C60F                  rol esi, 0F
:0040110A C1EE04                  shr esi, 04
:0040110D 83C608                  add esi, 00000008
:00401110 81FE0BC97A0B            cmp esi, 0B7AC90B
:00401116 754B                    jne 00401163

czyli po tym operacjach esi ma byc 0B7AC908. no wiec co robimy?
racja, odwracamy. wpisujemy "a" enter. i wklepujemy odwrotne
instrukcje, oczywiscie brane od konca..czyli:

	sub esi,08
	shl esi,04
	ror esi,0F

naciskamy escape i wpisujemy "r esi=0B7AC908". teraz wykonujemy
wpisane przez nas instrukcje zatrzymujemy sie po nich i "?esi"
si nam pokaze " aoY" odwracamy to i juz mamy pierwsze cztery
poczatkowe litery hasla.

dochodzimy do linijki 401116, zmieniamy stan flagi aby sie nie
wykonal skok "r fl z" i patrzymy dalej, pobranie kolejnych
czterech znakow i znowu sprawdzanie

:00401122 81F643726163            xor esi, 63617243
:00401128 7539                    jne 00401163

czyli po xorze esi ma byc rowne zero, wiec zerujemy esi "r esi=0"
przechodzimy przez instrukcje xor i znowu "?esi" i mamy kolejne
4 znaki hasla "Crac", zmieniamy flage jak wczesniej "r fl z"
i patrzymy dalej, kolejne sprawdzenie:

:00401134 C1CE17                  ror esi, 17
:00401137 C1C603                  rol esi, 03
:0040113A 81F628058619            xor esi, 19860528
:00401140 81C611111111            add esi, 11111111
:00401146 81EE7DC1939C            sub esi, 9C93C17D
:0040114C 7515                    jne 00401163

wiec robimy podobnie jak na poczatku, dojezdzamy do linii 401134,
naciskamy "a" (asembluj) i wpisujemy odwrotne instrukcje:

	add esi,9C93C17D
	sub esi,11111111
	xor esi,19860528
	ror esi,3
	rol esi,17

naciskamy escape i zerujemy esi "r esi=0" wykonujemy wpisane przez
nas instrukcje, dochodzimy do 40114C i wpisujemy "?esi"
ukaze sie nam "TI K", odwracamy laczymy i nasze haslo to:
"Yoa CracK IT", wychodzimy z si, wychodzimy z programy, uruchamiamy
jeszcze raz, wpisujemy hasla, wow, dziala. crackme zcrackowane.
"Gratulacje (...)" :)

greets to: <>UnderPl squad
           <>tepe^
           <>Liquid
           <>#crackscene
           <>you
           ...& nobody else