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

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

   prog name   : CrackMe by pwaity/AAOCG/ 
   Date        : 06/18-19/2000
   Writen by   : Mr. Ketchup, Rusty, Pawl0s, Jube 
   What        : tutorial

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

Czesc!

W tym tutorialu opisze sposob zlamania CrackMe by pwaity/AAOCG/ 
Programik ten powinien byc w pliku ZIP wraz z tym tutem.
Jak ktos jest jasnowidzem i chce tylko wiedziec w jakiej formie bedzie haslo to specjalnie
pisze. Bedzie cos w stylu "xxxxXXXXxxxxXX"

Co bedzie nam potrzebne:

- SoftIce w wersji im nowszej tym lepiej
- troche zdrowych komorek mozgowych nie wyzartych przez alkohol i inne urzywki.:))

No to zabieramy sie do roboty.
Odpalamy CrackME i wpisujemy co nam sie podoba.
Ja wpisalem:
  name  : Ketchup
  serial: 123456789012 
Teraz zakladamy pulapka na Getdlgitemtexta

   bpx getdlgitemtexta

Programik sie zlapal wiec naciskamy F11. Tutaj rozpocznie sie mielenie naszego name. Jest
ono dosyc proste wiec nie bedzie wstawek z asma i dokladnych opisow. 
W duzym skrocie wyglada to tak:
1. Sprawdzenie czy wpisalismy jakies znaki
2. Sumowanie wszystkich znakow w naszym name
   wartosc ta jest w eax i nastepnie jest przepisywana pod 00403200
3. Sprawdzenie czy suma znakow jest wieksza od 720 ale mniejsza od 1830 i jezeli nie to skok do
   go_away_bad_boy
4. Ponownie pobierane jest nasze name i kazda literka jest xor'owana z wyrazem "Simple Crackme!"
5. Literki po xor'owaniu sa sumowane i suma idzie do eax. 
6. Xor'owanie eax z suma z pod adresu 00403200 ktora jest ladowana do edx
   Wartosc uzyskana siedzi w eax
7. Gdzies tu jeszcze jest sprawdzenie czy nasz name nie zawiera "/". Jak zawiera to chyba wiesz
   co sie stanie:))


                        TUTAJ JEST SPRAWDZANIE NASZEGO SERIALA

Podzielilem sprawdzanie serialu na sekcje. Ponizej jest opis co sie dzieje w kazdym dziale

---------  
-Sekcja1-
---------
00401246: 85C0                         test      eax,eax      
00401248: 0F84B0000000                 je       .0004012FE    
0040124E: 83F80A                       cmp       eax,00A       
00401251: 0F82A7000000                 jb       .0004012FE     
------------------------------------------------------------------------------------------------
---------  
-Sekcja2-
--------- 
00401257: 8A0D10324000                 mov       cl,[000403210]  
0040125D: A100324000                   mov       eax,[000403200]
00401262: 0FC8                         bswap     eax             
00401264: D3C8                         ror       eax,cl         
00401266: B904000000                   mov       ecx,000000004  
0040126B: 33DB                         xor       ebx,ebx        
0040126D: 33D2                         xor       edx,edx
0040126F: 660FB6D8                     movzx     bx,al
00401273: 8A93F0304000                 mov       dl,[ebx][0004030F0]
00401279: C1C808                       ror       eax,008 ;""
0040127C: C1CA08                       ror       edx,008 ;""
0040127F: E2EE                         loop     .00040126F   -------- (3)
00401281: 81FA4C3E3A4D                 cmp       edx,04D3A3E4C ;"M:>L"
00401287: 7575                         jne      .0004012FE   -------- (4)
-------------------------------------------------------------------------------------------------
---------  
-Sekcja3-
---------
00401289: 66A104324000                 mov       ax,[000403204]
0040128F: 668B1506324000               mov       dx,[000403206]
00401296: 663BC2                       cmp       ax,dx
00401299: 7563                         jne      .0004012FE   -------- (5)
-------------------------------------------------------------------------------------------------
---------  
-Sekcja4-
---------
0040129B: 8D3508324000                 lea       esi,[000403208]
004012A1: B904000000                   mov       ecx,000000004 ;"   "
004012A6: 660FB61E                     movzx     bx,b,[esi]
004012AA: 8A93F0304000                 mov       dl,[ebx][0004030F0]
004012B0: C1C208                       rol       edx,008 ;""
004012B3: 46                           inc       esi
004012B4: E2F0                         loop     .0004012A6   -------- (1)
004012B6: 81FA5441344C                 cmp       edx,04C344154 ;"L4AT"
004012BC: 7540                         jne      .0004012FE   -------- (2)
-------------------------------------------------------------------------------------------------
---------  
-Sekcja5-
---------
004012BE: 8D350C324000                 lea       esi,[00040320C]
004012C4: 8A06                         mov       al,[esi]
004012C6: 32D2                         xor       dl,dl
004012C8: 02D0                         add       dl,al
004012CA: 8A4601                       mov       al,[esi][00001]
004012CD: 02D0                         add       dl,al
004012CF: 80FAA7                       cmp       dl,A7 
004012D2: 752A                         jne      .0004012FE   
-------------------------------------------------------------------------------------------------
---------  
-Sekcja6-
---------
004012D4: 8D3504324000                 lea       esi,[000403204]
004012DA: 8A16                         mov       dl,[esi]
004012DC: 8AC2                         mov       al,dl 
004012DE: 02C0                         add       al,al
004012E0: 02C2                         add       al,dl
004012E2: 3CFF                         cmp       al,0FF 
004012E4: 7518                         jne      .0004012FE  


*********
*SEKCJA1*
*********                
Sprawdzanie czy wpisalismy jakies znaki oraz czy znakow jest WIECEJ lub rowno 10.
Ja wam juz powiem ze wszystkich znakow ma byc 14.

-------------------------------------------------------------------------------------------------
********* TA SEKCJE STWORZYL RUSTY!!. Serdeczne dzieki Ci za to. Wszelki uwagi kierowac do niego.
*SEKCJA2*
*********

; help by [rusty/7team]
; nie wiem czy to najlepszy sposob ale dziala...


code segment byte public
assume ds:code,cs:code
org 100h
P586

start:	
	mov       eax,dana			 ; wypieprzamy te ktorych
	inc	  eax				 ; sie nieda napisac...
	mov	  dana,eax
	cmp	  eax,07e7e7e7eh		
	jz	  koniec			 ; all sprawdzone i nie znalazlo
	cmp	  al,030h
	jb	  start
	cmp	  al,07eh
	ja	  start
	cmp	  ah,030h
	jb	  start
	cmp	  ah,07eh
	ja	  start
	ror	  eax,010h
	cmp	  al,030h
	jb	  start
	cmp	  al,07eh
	ja	  start
	cmp	  ah,030h
	jb	  start
	cmp	  ah,07eh
	ja	  start
	rol	  eax,010h
	
	MOV       CL, 0b5h
	MOV       EAX,dana
	BSWAP     EAX
	ROR       EAX,CL
	MOV       ECX,00000004
	XOR       EBX,EBX
	XOR       EDX,EDX
loopek:	MOVZX     BX,AL
	MOV       DL,[EBX+offset klucz]
	ROR       EAX,08
	ROR       EDX,08
	LOOP      loopek
	CMP       EDX,04D3A3E4Ch
	JNZ       start
	nop				;wynik w dana, tylko go napisac
					;mnie sie nie chcialo i zastawilem
					;bpx-a na ta linie ...
koniec:
	mov	ah,4ch
	int	21h
klucz	db	"IJV0ABX;>WA>X0CR7@5@IH4ICHI:?BIQRI=X>K<TJ:;:E?AFPA4LTVG@40AUAO38="
	db	"<6SMP25KI@DNHGUX:<AVVIKWUSNKM0JHG7M3A@5UADH9FY8A@5VI4RBW4J:7I0;DU"
	db	"CS<>302UB2@4K?:N8UR2;Q599L921S41?QQQ:JW5V1E2W<GBU21:3GIT=9WLHE:YN"
	db	"BR<BN:K0MRK:LEXI4RT4JBNW610@SC:K6ES>8B4M>DMFCOA<HU>YBP<F=>?F",0
dana	dd	03030302Fh		;od tej liczby zaczyna sie brute
Code Ends
End Start

                                 Plik asm powinien byc w pliku Zip
-------------------------------------------------------------------------------------------------
*********
*SEKCJA3*
*********
Tutaj do ax ida znaki 5 i 6 a do dx sa wkladane znaki 7 i 8.
Dalej jest porownywanie tych rejestrow. I jezeli sa takie same to OK.
Wynika z tego ze znaki 5-6,7-8 sa takie same.
Teraz skocz do SEKCJI 6.
Ok juz wiesz ze piaty znak jest sprawdzany przy samym koncu. Wyszlo nam ze musi on byc "U"
A wiec znaki 5,6,7,8 to "UxUx" gdzie x to dowolne litery przy czym musza byc takie same.
Ja wybralem "A" wiec teraz mam "UAUA" 

-------------------------------------------------------------------------------------------------
*********
*SEKCJA4*
*********
Tutaj sa sprawdzane znaki 9,10,11,12
Kazdy znak jest zamieniany na inny wedlug tabelki z pod adresu 0004030F0.
Troche trudno to wyjasnic ale chodzi o to ze na podstawie znaku ktory wprowadzimy obiczany 
jest znak z tabeli 0004030f0. 
Przebiega to nastepujaca:
wartosc hex znku ktory wpisalismy+004030f0
Dalej ten znak jest rol'owany o 8 i na koncu wynik ktory uzyskamy powinien wyniesc 
04C344154 "L4AT". Czyli jakie litery powinny byc przed rol'owaniem??
Mozna to latwo wyliczyc:
 xxxx rol 8=04c3441144
 xxxx=04c3441144 ror 8
 xxxx="TL4A"

Teraz szukamy w tabelce pierwszego znaku czyli "T". OK znalezlismy. Jest na pozycji 52(dec).
Czyli znak jaki musimy wpisac to "4"
Podobnie robimy z kolejnym znakiem czyli z "L". Jest zaraz kolo "T" a co za tym idzie jest o 
jeden mniejszy od "4". I co wiecie jaki to znak??:))
Nie wiecie:((. Jest to "3"
Kolejne juz sami sobie wyliczcie.
No dobra. Powiem wam. Moga to byc np."2" i "1"
-------------------------------------------------------------------------------------------------
*********
*SEKCJA5*
*********

Tutaj jest sprawdzanie czy dwa ostatnie znaki spelniaja warunek ze po dodaniu ich uzyskamy
wynik A7. Czyli Przykladowo moga to byc znaki "ST" lub jeszcze inne. 

-------------------------------------------------------------------------------------------------
*********
*SEKCJA6*
*********
Tutaj jest sprawdzanie 5 znaku.
W zapisie matematycznym wyglada to tak:

  x+x+x=FF
Wynika z tego ze piaty znak to FF/3 . Chyba juz wiecie ze 5 znak to "U"

-------------------------------------------------------------------------------------------------

Ostatecznie dane dla dowolnego nicka

 Name   : Nick
 Serial : xxxxUAUA4321ST

Uwaga. Nie dla kazdego nick da sie wygenerowac serial. Przyczyna tego jest bledny algorytm.

                   Ale meczacy ten tutorial. Idzesz ze mna na piwo??(Bezalkoholowe)

Sorki ze tak zagmatwany ten tutor ale latwiej juz nie umialem.
I to by bylo na tyle. Wszelie uwagi kierowac pod adres mr_ketchup@poczta.onet.pl
Jezeli jednak ktos czegos nie rozumie to niech do mnie nie pisze. Wszystko wyjasnilem tak jak 
umialem najlepiej.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-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 : MGKiler, Rusty, Pawlos, Jube, My dog
     groups : CrackPL, AAOCG, CookieCrk, ACG

  My e-mail: mr_ketchup@poczta.onet.pl
             ~~~~~~~~~~~~~~~~~~~~~~~~~
  SeveN TeaM - Official WebPage:  http://www.7team.z.pl
                                  ~~~~~~~~~~~~~~~~~~~~~
-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-