******************************************
*    dATE: 20.07.2002                    *
* pROGRAM: Crackme 1.0 <ser2> by Veneta  *
*   wHERE: www.crackmes.prv.pl           *
*   tOOLS: IDA_v4.17                     *
*          MASM_v7.0                     *
* aNTY SI: no                            *
*  pACKED: no                            *
*   lEVEL: medium (jak dla mnie to easy) *
******************************************

veneta8@poczta.onet.pl
"Poziom trudnoci to medium (ja tak myl)..."
hmmm mysle, ze poziom medium jest zdziebko przesadzony!
Uwazam ze crackme zasluguje na poziom very esy for newbies ;->

Samo crackme niczym nowym mnie nie zaskoczylo, i jest bardzo proste!
Wystarczy pomyslec nad takim kawalkiem kodu:

;----------------------------------------------------------------------------
		mov	esi, offset unk_4030B0 ;adres wpisanego name
		mov	edi, offset unk_4032B0 ;adres wpisanego seriala
		jmp	short $+2              ;ten skok jest niepotrzebny

loc_401170:				; CODE XREF: sub_401155+23j
		cmp	byte ptr [esi],	0  ;zliczanie sumy znakow name
		jz	short loc_40117A
		add	cl, [esi]          ;suma znakow name
		inc	esi
		jmp	short loc_401170
; 

loc_40117A:				; CODE XREF: sub_401155+1Ej
					; sub_401155+2Dj
		cmp	byte ptr [edi],	0  ;zliczanie sumy znakow seriala
		jz	short loc_401184
		add	bl, [edi]          ;suma znakow seriala
		inc	edi
		jmp	short loc_40117A
; 

loc_401184:				; CODE XREF: sub_401155+28j
		xor	cl, 5Bh
		mov	al, cl
		xor	bl, 29h
		xor	al, bl
		xor	al, 56h
		xor	al, 0E6h
		mov	cl, al          ;juz po jednym xorze mamy wartosc 42h ktora prawidlowo odszyfrowuje wiadomosc o poprawnym serialu
		xor	al, 74h
		cmp	al, 36h
		jnz	short loc_4011BF
;----------------------------------------------------------------------------

A wiec procka generujaca poprawne seriale to:

;----------------------------------------------------
;         Procedura generujca poprawny serial
;----------------------------------------------------

		xor	esi, esi
		xor	ecx, ecx
		xor	eax, eax
                mov	esi, offset unk_4030B0  ; adres NAME
@petla1:
		cmp	byte ptr [esi],	0
		jz	hop1                  
		add	cl, [esi]             ;w CL suma znakow name
		inc	esi
		jmp	@petla1               
hop1:
		xor	cl, 5Bh        ;xoruj sume znakow
		mov	al, cl         ;wynik z sumy znakow do AL
		xor     al, 0F2h       ;xoruj AL
		xor     al, 29h        ;xoruj AL

;-----------------------------------------------------

Warto w rejestrze AL jest naszym serialem! No i czesto ta wartosc jest niewpisywalna z klawiatury, a wiec mozna ja wkleic do editbox'a badz rozbic na kilka znakow wpisywalnych z klawiatury. Dla zabawy mozan by napisac procedurke rozkladajaca uzyskana wartosc na znaki wpisywalne z klawiatury!

name: ManSun^UnderPl
wartosc w hex dla mojego name to EAh, wiec mozna ja wkleic lub rozbic na wpisywalne znaki!
serial: 
or serial: 99x


                                     \|/
                                   ->( )<-
                                     /|\

                                 +----------+ 
                               +- cONTACT: -+
                                +----------+ 
                +----------------------------------------------+
                    ManSun mEMBER oF UnderPl cRACKING gROUP   
                            eMAIL:[ mansun@go2.pl ]           
                     UnderPl sITE:[ http://underpl.tk ]       
                +----------------------------------------------+