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

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

   prog name   : GenoCide Crackme 16 [Gandalf]
   Date        : 06/30/2000
   Writen by   : Mr. Ketchup
   What        : tutorial

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

Czesc!

W tym tutorialu opisze sposob zlamania GenoCide Crackme 16 [Gandalf]
Programik ten powinien byc dolaczony do pliku "zip" w ktorym byl ten tekst.

Co bedzie nam potrzebne:
1)-W32Dam 
2)-Soft Ice
3)-ProcDump
4)-Turbo Pascal
4)-Mozg


No to zaczynamy. Odpalamy crackme i widzimy ze trzeba podac imie i wstukac serial. 
Uruchamiamy W32Dasm i disemblerujemy program. Ups. Chyba jets spakowany. No to go 
rozpakujemy ProcDump'em. Teraz przegladamy wszystkie stringi jakie uda nam sie zobaczyc. 
No i widzimy cos takiego: "Hey, Man, you did it!You". Teraz jedziemy troche w gore i widzimy cos 
takiego:

00437c02           mov    eax, [ebp-04h]
00437c05           call   403978h
00437c0a           cmp    eax, 5               // Porownanie ilosci znakow w name z 5
00437c0d           jl     437cc2h              // Jezeli mniej niz 5 to wypad
00437c13           mov    eax, [ebp-04h]
00437c16           movzx  eax, [eax]	       
00437c19           mov    ecx, 0ah	
00437c1e           cdq    
00437c1f           idiv   ecx         
00437c21           mov    [43a72ch], eax       
00437c26           mov    eax, [ebp-04h]      //Dzielenie pierwszego znaku przez 10
00437c29           movzx  eax, [eax+02h]       
00437c2d           mov    ecx, 0ah
00437c32           cdq    
00437c33           idiv   ecx		        
00437c35           mov    [43a730h], eax        
00437c3a           mov    eax, [ebp-04h]      //Dzielenie 3 znaku przez 10
00437c3d           movzx  eax, [eax+03h]	
00437c41           mov    ecx, 0ah
00437c46           cdq    
00437c47           idiv   ecx			
00437c49           mov    [43a734h], eax      //Dzielenie 4 znaku przez 10
00437c4e           mov    eax, [ebp-04h]
00437c51           movzx  eax, [eax+04h]
00437c5b           idiv   ecx			
00437c5d           mov    [43a738h], eax	
00437c62           mov    esi, 01h            //dzielenie 5 znaku przez 10
00437c67           mov    ebx, 43a72ch                                               
00437c6c           lea    edx, [ebp-08h]
00437c6f           mov    eax, [ebx]
00437c71           call   406900h
00437c76           mov    eax, [ebp-08h]
00437c79           call   403978h
00437c7e           dec    eax
00437c7f           jz     437c8dh
00437c81           mov    eax, [ebx]	     //Sprawdzenie czy wyniki z dzielenia nie przekraczaja
00437c83           mov    ecx, 0ah	     //10. A jezeli tak to znowu dzielimy przez 10	
00437c88           cdq    			
00437c89           idiv   ecx
00437c8b           mov    [ebx], eax 


Teraz zalorzymy sobie pulapke na pierwszy adres jaki mamy czyli na 00437c02.
Ok program sie zlapal wiec teraz analiujemy. Opisy sa obok wstawki z asma.
Wynik ktory zostanie uzyskany jest porownywany z tym co wpiszemy w polu serial. 
Czyli teraz przyszla kolej na wygenerowanie poprawnego seriala dla moich danych.

Name : Mr. Ketchup

     M-77(ASCII)/10 =7
     r-nic sie z tym znakiem nie dzieje
    "."-46(ASCII)/10 =4
    " "-32(ASCII)/10 =3
     K-75(ASCII)/ 10 =7 -to jest ostatni znak 

Code : 7437

A teraz czas na KeyGen:

---------------------------------------tu ciac--------------------------------------------------
Uses Crt;
Var a,b,c,d : Integer;
    imie      : String;

Begin
Write('Enter Your name : ');
Readln(imie);
If Length(imie)<5 then
 Begin
   Writeln('Name must have min 5 chars!');
   Halt;
 End;
a:=Ord(imie[1]) div 10;
b:=Ord(imie[3]) div 10;
c:=Ord(imie[4]) div 10;
d:=Ord(imie[5]) div 10;
If a>10 then a:=a div 10;
If b>10 then b:=b div 10;
If c>10 then c:=c div 10;
If d>10 then d:=d div 10;
If a=10 then a:=1;
If b=10 then b:=1;
If c=10 then c:=1;
If d=10 then d:=1;

Writeln('Your code is    : ',a,b,c,d);
Readln;
End.
-------------------------------------tu ciac----------------------------------------------------

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

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.

A i jeszcze jedno. Coraz czesciej dostaje listy typu:

"Przyslij mi serial do xxxxxxx. Dzieki." Na takie listy poprostu nie odpowiadam. Wszystko co mam 
jest na stronie. Jezeli jednak bardzo czegos potrzebujesz i jestes ladna dziewczyna:))
to mozesz napisac(zalacz fotke:))). Podaje teraz forme listu.

Potrzebuje xxxxxxxx do programu xxxxxxxxx. Jest on w internecie na stronie xxxxxxxxxxx i zajmuje
xxxxx MB. 

Jak dostane taki list to zobacze co sie da zrobic. Ale uwaga jezeli program jest gdzies w sieci
i zajmuje wiecej niz 2 MB to sorki ale moje lacze czegos takiego nie wytrzyma. Najlepiej jezeli
program jest na jakiejs plycie typu Chip czy Enter. 
Pamietajcie jeszcze ze moge nie dac rady rozwalic zabezpieczen!!

A teraz podam wam przyklad takiego fajnego listu ktory dostalem. 

Hi!

Daj mi cracka do xxxxxxxxx. Za dwie godziny ma byc w mojej skrzynce pocztowej bo jak nie to ci
zbombarduje e-maila. 

Ludzie co wy myslicie ze poddam sie szantazowi?:)))


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=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:
                  Zeba Softis.......................................cracker
                  Jelit Wypatrosz...................................cracker
                  zoomek.....................................writer/cracker
  WebPage:
                  LIAR..............................webmaster/graphic/coder
                  _2000_.......................................server_admin
  
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o t h e r s-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  Greets to : MGKiler, MaxiBogas, My dog, 
     groups : CrackPL, AAOCG, CookieCrk

  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=-