OPIS CRACKME 1.0 be PSYChEdRYNA 
Patrzymy w kod programu a tu napis 'winkript by .... '.No to autor sie postaral
i zabezpieczyl kod,ale troche nizej jest spis funkcji API wiec jest jakis punk odniesienia.
Odpalamy program pod SI, sie uruchomil wpisujemy jakis nick i kod i check,Program wyswietla
komunikat zie wykryl debuger w pamieci.W tej chwili metoda detekcji jest nie wazna.
Poniewaz program sie zamyka po wykryciu debugera ustawiamy BPX na EndDialog.
Uruchamiamy program i CHECK program wysietla mboxa z komunikatem ze wykryl debugera
klikamy OK i wyskakuje BPX.Naciskamy F11 i patrzymy w kod.Troche wyzej jest wywolanie
m boxa i rozkaz POPAD ktory prawdopodobnie rozpoczyna procedure konca (fajnie brzmi)
Ma ona adres 4013F9 wiec wyzej w kodzie (w SI a po offsetach nizej) jest gdzies
CALL 4013F9 albo prawdopodobniej JMP/JE/JNE... 4013F9 Znajdujemy pod adresem 4011BA
taka instrukcje JZ 4013F9 wiec jest to skok po wykryciu debugera.Teraz pod ten adres
wstawiamy BPX i uruchamiamy program ponownie (bo stara kopia sie zakonczyla)i teraz
nalezy wpisac 6*NOP(lub 3* NOP32) i program juz bedzie dzialac pod debugerem.Wyswietl
za to napis Wrong, try again ale juz cos mamy.Teraz ajwazniejsze sa dwa wykonania
GetDlgItemTextA,jedno dla nicka drugie dla code.
Pobranie NIcka
Zaraz za callem jest zprawdzenie czy dlugosc jest miedzy 5 a 16 liter
Potem ciekawostka program sumuje litery po cztery ale nie kolejno
tylko wedlug wlasne tablicy

suma1    4 C 5 8
suma2    0 9 D 1
suma3    A 6 2 B
suma4    3 E 7 F 
dalej te wartosci sa zapisywane i dalej ....

Pobranie kodu
Kod jest pobierany i sprawdzany czy nie przekracza 17 liter a takze czy jego
dlugosc jest dokladnie o jeden znak wieksza od dlugosci nicka.
Na tym etapie mozna przyjac ze kod to tylko cyfry

Opis algorytmu kodowania
LEGENDA
n[1]- pierwsza litera nicka
k[1]- pierwsza litera kodu itd..
  cl- rejestr cl (zmienna) 

cl=k[1] xor 0x13

[{[(n[n] xor k[n+1])and 0xFF] sar cl}and 0xF]+0x4031EC

pod adres z oblicznia jest kopiowana zawartosc n[n]

potem sa sumowane cztery pierwsze,drugi,trzecie i czwarte bajty razem 
i porownywane z sumami z nicka
Jesli wartosci sa rowne to program gratuluje roboty.

!!! podane nizej rozwiazanie jest jednym z mozliwych !!!

aby wartosci byly te same pod adres obliczony z numeru seryjnego i nicka
musza byc kolejno znaki z nicka tak jak sumowany byl nick tzn kolejno
4 C 5 8 0 9 D 1 A 6 2 B 3 E 7 F litera nicka
wiec tworzymy program szukajacy na brute-force
dzialanie jest krotkie bo szukamy jedorazowo 5 cyfr.Robimy tak dla kazdej z czterech czworek 
znakow.Poniewaz przytaczanie programu bedzie dlugie zalaczam kod programu w PAS ktory
ktory wygeneruje klucz.

Zlamany przezemnie kod
nick : Lord Ghoul
code : 38888051169

Ciag Dalszy Nastapil (czas przeszly)
Po nownych konsultacjach z autorem crackme tj Psychederyna i wlasnych probach.
Istnieja pewne nicki dla ktorych keygen nie moze wygenerowac kodu tj generuje kod
99999999(9) poniewaz wewnetrzne liczniki sprawdzaja wszystkie mozliwe kombicje 0-9
wiec dana metoda jest bledna (w pewnym sensie).
Autor uznal sposob lamania za prawidlowy rownoczesnie odslonil rabka tajemnicy:

Lord Ghouls
1\0XT LLT88P

Ghoul Lord
1T4DD,((T<0

Te dwa kody nie mogly byc wygenerowane przez moj keygen.Wiec na podstawie nich nalezy 
przypuszczac ze kody skladaja sie z liter,cyfr i znakow specjalnych a takze ze pierwszy
znak to jedynka (1).Na podstawie tych danych i poprzedniego kodu stworzylem nowy keygen
ktory sprawdza kody od 33 do 93 Wydajnosc jest taka ze na moim K5-100Mhz znajduje
rozwiazanie do nicka Lord Ghoul tylko w 15 sekund wiec jest to rozwiazanie optymalne.
Do pliku zalaczam dwa programy
keygenb = Keygen beta tylko cyfry
keygen = Keygen caly nick