
                            
                      
                  
                  
                     
                        
                        
                      
              
           
             
                    
                                             
        www.acg.silesianet.pl- --- ---- -----acg@silesianet.pl
        _ __ ___ ____ _____ ______ _______ ________ __________
        
        [Name ...................................FuckMe1_tut ]
        [Author ...................................._AnDrEw_ ]

        PATCH [ ]      CRACK [ ]      SERIAL [ ]    KEYGEN [ ]
        UTIL  [ ]      OTHERS[ ]      LOADER [ ]       TUT [*]
        _ __ ___ ____ _____ ______ _______ ________ __________	


	 	 _______________________________________
                     	 I n f o r m a c j e

	Co :	Fuckme1.exe
	Gdzie :	http://strony.poland.com/crackmes/files/slon_fuckme1.zip 
		lub http://www.crackmes.prv.pl (numer 72)
	Czym :	SoftICE

	Witam dzisiaj zajmiemy si prociutkim CrackMe ( w zasadzie FuckMe ) by Sonik
	ma ono dwa a w zasadzie trzy zabezpieczenia:
	
	1. Anty SoftICE, ale autor mwi e mona to spathowa, wic patrzymy ma kod:
	na samiutkim poczatku mamy call 4010E4 a tam takie cudo

:004010EA 680D114000              push 0040110D
.... cut ....
* Reference To: KERNEL32.SetUnhandledExceptionFilter, Ord:026Ah

:004010F3 E872000000              Call 0040116A
:004010F8 BD4B484342              mov ebp, 4243484B
:004010FD B804000000              mov eax, 00000004
.... cut ....
:00401105 CC                      int 03		<--- !!!!!
:00401106 6A00                    push 00000000

* Reference To: KERNEL32.ExitProcess, Ord:0075h
                                  |
:00401108 E845000000              Call 00401152

	jest to jeden ze sposobw na wykrycie debugera, funkcja SetUnhandledExceptionFilter
 	podczas wystpienia bdu ( bd jest generowany w lini :00401105 ) skoczy nam do 
	funkcji podanej jako parametr ( :004010EA ) ale TYLKO wtedy gdy proces NIE jest
	debagowany w przeciwnym wypadku pjdzie dalej do ... ExitProcess, czyli po ludzku 
	jeli jest zaadowany SoftICE to to w po lini :401105 przeskoczy dalej .. i si zakoczy
 	w przeciwnym przypadku skoczy do :40110D i wyjdzie z call'a.
	Aby pomin to zabezpieczenie mona np. linie od 401105 do 401108 zamienic na NOP.


	2. Nastpne zabezpieczenie a w zasadzie puapka - program pobiera lini polece 
	sobie co liczy, tzn dodaje wszystkie znaki do pierwszej spacji z tej lini dla
 	przypomnienia jeli program wywoujemy przez dwuklik to linia ta bdzie wyldaa tak 	
	"<Liteta_dysku>:\<cieka>\nazwa_progsa.exe", nastpnie od tej sumy odejmuje 30 roluje 
	j o jeden w prawo, dodaje 4, odejmuje $300, xoruje z A4A i porwnuje z zerem jeli 
	rne to goodbye. Wic odwracemy te jego dziaanie i wychodzi nam, e suma znakw lini
 	polece do pierwszej spacji musi rwna si $6D3 czyli 1747dec. Nie bed si rozpisywa	
 	jak dojs do poprawnej lini polece bo jest to banalne, aby byo dobrze program naley
	umieci w katalogu np: C:\jjj\ ( linia polece = "C:\jjj\fuckme1.exe" ). 

	3. Ostatnie zabezpieczenie kfile, w zasadzie to ju tylko formalno BPX na CreateFileA
	i ju namy nazw pliku - slonik.abc teraz zawarto, spjrzmy:

:0040112B 8037AB                  xor byte ptr [edi], AB
:0040112E 802F13                  sub byte ptr [edi], 13
:00401131 800711                  add byte ptr [edi], 11
:00401134 47                      inc edi
:00401135 803F00                  cmp byte ptr [edi], 00

	w [EDI] jest zawarto naszego kfile'a i co jest rbione xor'owanie z $AB i odejmowane 2 
	(bo - 13 i + 11 to -2) wic robimy odwrotno do liter naszej ksywki dodajemy 2 i xor
	ujemy z $AB, czyli dla mnie zawarto kfile'a wyglda tak

	ksywka	| _  | A  | n  | D  | r  | E  | W  | _  |
		| 5F | 41 | 6E | 44 | 72 | E8 | 77 | 5F |
		---------------------------------
	kfile   | CA | E8 | DB | ED | DF | EC | D2 | CA |



.... to u koniec tego tuta FuckMe1 by Slonik rozwizane.
Pozdrawim i ycz miej zabawy

_AnDrEw_


        _ __ ___ ____ _____ ______ _______ ________ __________
                 ___        ___      ____
                / _ | ___  / _ \____/ __/    __
               / __ |/ _ \/ // / __/ _/| |/\/ /
           ___/_/ |_/_//_/____/_/ /___/|__/\_/___
          /___/                             /___/

		andrew33@kki.net.pl
        _ __ ___ ____ _____ ______ _______ ________ __________