
                 
                       
                  ۲  ۲ ۲  ۲  ۲    ۲    
                  ۲۲ ۲۲ ۲  ۲ ۲      ۲   ed!
                  ۲  ۲ ۲  ۲  ۲   ۲  
                           
                   
                  aDVANCED aRT    oF cRACKiNG gROUP 

		     ___      ___           ___            ___
		    /  /     /__/       /---  /--         /  /
		   /  /     ___ ________--/  ---/_____   /  /
		  /  /----//  //  ___   \/  /   ___  /  /__/
		 / ---/  //  //  /  /  //  /   _____/_ ___
		/__/ /  //__//__/  /__//__//_________//__/
		    /  /
		   /__/   hinte@box43.gnet.pl

	[What......................KrowaX 1.0 by Ged_^CrackPL]
	[Who broke.....................................hinte!] 

     	      SERIAL [ ]       CRACK [ ]       PATCH [ ]  
 	      KEYGEN [ ]      LOADER [ ]         TUT [x]

	To jest moj drugi tutor, sorki za bledy :)
	Wszelkie uwagi prosze przysylac moj e-mail

Intro:
	Jesli nieznasz budowy naglowka plikow PE to radze Ci sie najpierw z
	nim zapoznac gdyz opisy w tym  tucie sa bardzo skocone - brak czasu 
	na pisanie wielkich eseii ;>

Tools:

- hex edit /but not hwiew/

Zaczynamy:

	Najpierw odplamy exe w hex i widzimy ze mamy niejsce na nowa sekcje
	a wiec polowa problemu z glowy,  bo jakby niebylo miejsca to trzeba
	by bylo all sekcje przesunac i dopiero w tedy dodac nowa sekcje ...

Zwiekszmy liczbe sekcji:

	Po 'This..' mamy znacznik 'PE' ze to jest exe / dll w odleglosci  6
	bajtow od tego mamy '03h' jet to liczna wszystkich sekcji  pliku PE
	<FileHeader.NumberOfSections>, zwiekszamy ja o 1 --> 04h

Znajdzmy wskaznik na pierwsa sekcje:
	
	Mozna nawet wizualnie: pierwsza sekcja to  '.text'  rozmiar  jednej
	sekcji to size of IMAGE_SECTION_HEADER =  44  <dla chetnych polecam
	iczelion's PE tuts>. dodajemy  3*44  <bo 3 sekcje>  i  jestesmy  na
	poczatku naszej sekcji, londujemy na offsecie 220h  wpisujemy nazwe
	sekcji <8 znakow max>. Po 8-smiu znakach mamy Virtual size  wpiszmy
	200h ale odwrotnie! nastepne 4 bajty to  virtual  addres  wpisujemy
  	4000 odwrotnie! potem mamy raw size - 200h,  znowu  w  spak  trzeba
	wspisac, nastepnie rawOffset - wpisujemy rozmiar pliku i zwiekszamy
	go o 200h bajtow - wypelniamy zerami, dalej  mamy pointer to linenr
	(zostawiamy zero), number of relocs  (zostawiamy zero),  number  of
	line nr	(zostawiamy zero) i chracteristic - istawiamy  na C0000040h 
	<section is executable,  readable,  writeable>  ok  mamy  ustawione
	wszystko w sekcjach wiec mozemy przystapic do wpisywania  kodu  ...

Wpisac kod do sekcji:
	
	Wiemy z doswiqadczenia ze virtual addresy sekcji sa tak dobrane  ze
	zwiekszaja sie co 1000h, progs jest maly wiec mamy juz 4  seckje  1
	sekcja va = 1000h, 2 =  2000h, 3 =  3000h, 4 = 4000h.  Program  byl
	(chyba) kompilowany w masmie - wszystko na to wskauje :).  w sekcji
	po naglowku PE szuakmy entry pointa = to dword na pozycji  0xD8.  a
	wiec start jet na sekcji .text = sekcja ta zaczyna sie na  offsecie
	400h teraz trzeba sie zabawic w wstawianie kodu - pod adresem 0xb00
	piszemy jakis text np. 'You cracked me!' ustalamy wskaznik  kursora
	na pozycje 0xa00 - poczaak naszej swkcji i piszemy:

	6ah,00h 		<push 0> 
	68h 00h,41h,40h,00h 	<push offset 404100h>
	68h 00h,41h,40h,00h 	<push offset 404100h>
	6ah,00h 		<push 0>

	teraz call messageboxa - wsekcji .text pod  koniec mamy  takie  co:
	ffh,25h,08h,20h,40h - jest to wskaznik na msgboxa a wiec  piszemy w
	naszym kodzie:

	b8h,08h,20h,40h 	<mov eax, MessaheBoxA>
	ffh,10h 		<call [eax]>

	teraz exit process, piszemy:
	
	6ah,00h			<push 0>
	b8h,00h,20h,40h 	<mov eax, ExitProcess>
	ffh,10h 		<call [eax]>
	
	w resultacie:

	6ah,00h 		<push 0> 
	68h 00h,41h,40h,00h 	<push offset 404100h>
	68h 00h,41h,40h,00h 	<push offset 404100h>
	6ah,00h 		<push 0>
	b8h,08h,20h,40h 	<mov eax, MessaheBoxA>
	ffh,10h 		<call [eax]>
	6ah,00h 			<push 0>
	b8h,00h,20h,40h 	<mov eax, ExitProcess>
	ffh,10h 		<call [eax]>


Juz tylko jmp do naszej sekcji:

	szukamy w sekcji .text 3 - ciego ciagu bajtow 6ah, 00h  <push 0>  i
	zmieniamy go na:

	b8h,00h,40,40h 		<mov eax, 404000h>
	ffh, e0h 		<jmp eax>
	
	akurat wyrobilismy sie w bajtach nic niezostalo - no i zlamane crackme :)

Uwagi:

	poziom newbies ;>













