Tut1.txt

(6 KB) Pobierz
UCS lesson 7 tut 2 by EmKey^Un


Witam wszystkich w moim kolejnym (juz IV TutOrIAl). Dzisiaj zajmiemy sie oczywiscie crackiem. W ty tutku chce wam opisac jak dziala i jak zrobic (wygenerowac) Loadera.

Na poczatek troche teorii Loadery sa to programy pomocne przy Crackowaniu programow spakowanymi exe-pakerami (np UPX, AsPack). Powinienes wiedziec ze w programie spakowanym exe-pakerem po otwarciu go w jakims Hex edytorze nie znajdziesz mnemonikow odpowiadajacm tym ktore widziales w Soft Ice'u. Bo sa one spakowane to oznacza ze zadne patchowanie nie wchodzi w gre. I tu wlasnie przychodza nam z pomoca Loadery. Wiec co one robia... Patchuja Progs ale... w pamieci. Poniewaz program spakowany po uruchomieniu musi sie rozpakowac.

OK mozecie powiedziec ze do kazdego exe packera istnieje depacker, dlaczego wiec go nim nie rozpakowac zpatchowac i na nowo spakowac. Po pierwsze mozna tak zrobic. Lecz jesli jest to jakas kolosalna aplikacja to wyslanie na jakis serwer np 5MB zajmie troszke czasu a przez nasza "kochana" TPSa czas gra duza role. Wiec poco wysylac 5MB jak mozna wyslac 7kb. wiec Zaczynamy

Teraz praktyka:

   Ofiara:   NeoTracePro v3.01
   Gdzie :   http://www.neaworx.com/ lub Chip 4/01
   AntySI:   brak
Spakowany:   Tak
Poziom   :   latwo-sredni

Narzedzia:   SoftIce 4.x
	     Universal Loader v1.0 by hinte
	     Masma 
	     Kartke papieru i olowek

Jak zwykle zalaczamy programik i mamy 30 dni na korzystanie z programu. Przestawiamy zegar o 2-3 miesiace do przodu i uruchamiamy NeoTracea ponownie !WoW! Piekny komunikat ze nasza Trial Version EXPIRED :( I co teraz. Wiemy ze program jest spakowany to znaczy ze nie mozemy go dissasemblowac. Naciskamy Cancel i pomyslmy..............moze by tak zalozys bpxa ale na co, na to co sie nam pojawia czyli MessageBoxA:

bpx MessageBoxA

Zalaczamy NeoTracea i bum jestesmy w Sice OK teraz F11 znow w Windozie Kliknijmy na OK !WoW! znow w Sicu I widzisz cos takiego:

0167:00425CEB  CALL      [USER32!MessageBoxA]
0167:00425CF1  CMP       EAX,01               <<<Tu wlasnie jestes
0167:00425CF4  JNZ       00425D05
0167:00425CF6  PUSH      00
0167:00425CF8  PUSH      0045E238

Przesunmy sie troche w gore Ctrl+Strzalka w Gore

0167:00425CB3  PUSH      EAX
0167:00425CB4  CALL      00432630
0167:00425CB9  ADD       ESP,08
0167:00425CBC  CMP       EAX,-64
0167:00425CBF  JNZ       00425CDA	      <<<--- 
0167:00425CC1  PUSH      30                        |
0167:00425CC3  PUSH      0045E3D0                  |
0167:00425CC8  PUSH      0045E380                  |
0167:00425CCD  PUSH      00                        | Ten skok nie moze sie wykonac
0167:00425CCF  CALL      [USER32!MessageBoxA]      |
0167:00425CD5  JMP       00425D68                  |
0167:00425CDA  TEST      EAX,EAX              <<<---
0167:00425CDC  JNZ       00425D13
0167:00425CDE  PUSH      31
0167:00425CE0  PUSH      0045E34C
0167:00425CE5  PUSH      0045E254
0167:00425CEA  PUSH      EAX

Bardzo interesujaca jest linijka pod adresem 00425cbf powyzej mamy porownanie i skok jesli nie zero. Zrobny maly trick zakladamy pulapke na adres 00425cbf:

bpx 00425cbf 

I ponownie zalaczamy NeoTracea i jestesmy w sicu w addresie 00425cbf Widzimy napis Jump. Ale co zrobic aby skok nie nastapil. Flaga adpowiedzialna za skoki JZ i JNZ jest flaga Z wiec komenda r fl z mozna zmylic program i skok nie nastapi.

r fl z

Dalej naciskamy F10 i pokazuje nam sie komunikat ze mamy 30 dni na wykorzystanie progsa. Klikamy OK i i jestesmy w Si pod adresem 00425cd5 teraz F10 i teraz F5 !WoW! Programik Dziala!!!!

OK Wyciagnijmy wnioski:

0167:00425CBF  JNZ       00425CDA	 ten skok nie moze sie wykonac. Jesli skok sie nie wykona to programik bedzie dzialal 
 ale bedzie nam sie wyswietlal nieznosny komunikat. Przypomnijmy sobie co sie dzieje  po nacisnieciu OK na tym nieznosnym komunikacie wykonuje sie skok do 00425d68 (patrz adress 00425cd5). Ten skok (0167:00425CBF  JNZ       00425CDA) musimy zmienic ten skok na skok bez warunkowy (JMP) ale nie bedzie skakal do 00425CDA tylko 00425cd5 czyli do praidlowego dzialania programu

Zalanczamy Neo tracea i jestesmy w sicu przy adresie 00425cbf wpisujemy polecenie Code on

Code on

0167:00425CBF  7519                JNZ       00425CDA                (JUMP )
0167:00425CC1  6A30                PUSH      30
0167:00425CC3  68D0E34500          PUSH      0045E3D0
0167:00425CC8  6880E34500          PUSH      0045E380
0167:00425CCD  6A00                PUSH      00

Zpisz sobie kody tak 3 linijki teraz bedac w linijce 00425cbf Wpis komende a 

0167:00425CBF jmp 00425d68 <<<to masz wpisac
0167:00425CC4 teraz nacisnij Escape

!WoW! Kod programu si troche zjexxx ale nic nie szkodzi bo i tak zaraz prog skoczy do 00425d68  Powinienes widzies cos takiego:

0167:00425CBF  E9A4000000          JMP       00425D68                (JUMP )
0167:00425CC4  D0E3                SHL       BL,1
0167:00425CC6  45                  INC       EBP
0167:00425CC7  006880              ADD       [EAX-80],CH
0167:00425CCA  E345                JECXZ     00425D11
0167:00425CCC  006A00              ADD       [EDX+00],CH

Spisz sobie kod linijki 00425cbf 

Teraz zalaczamy Universal Loader v1.0 by hinte 

W exe file otwieramy Neo Tracea, w dziale offset wpisujemy nasz offset skoku czyli 00425CBF w old byte wartosc 75 a w new byte wartosc E9  i klikamy na przycisk Add itd Pamietajac zeby zmieniac offset (offset+1) Czyli jak jest 00425cbf to kolejny offset bedzie 00425cc0 Mam nadzieje ze kapujesz to tak jak z liczeniem (18..19.20..21...) . Popatrz na tabelke:

		  --------------
	Old Byte |75|19|6a|30|68|
	New Byte |E9|A4|00|00|00|
		  --------------

Zaznaczamy opcje exe i Wciskamy generate. OK nasz pierwszy Loader zapisal sie w Katalogu gdzie jest Neo Trace. Dla bardziej zaawansowanych jest opcja asm32src w tedy Loader bedzie generowal zrodlo w assemblerze do pozniejszej kompilacji.
Mam nadzieje ze cos z tego txtu zrozumiales i ze poznales zalety Loaderow. Jesli jeczcze czegos nie kapujesz to mailme
			 ------------------
			|emkey86@poland.com|
			 ------------------
 -------------------------------------------------------------------------------
  POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO

       Tepe, Born, holus, Lemmy, PaulOS, RAD, ManSun i wszyscy z #crackpl

  POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO
 -------------------------------------------------------------------------------
Zgłoś jeśli naruszono regulamin