home *** CD-ROM | disk | FTP | other *** search
-
- ; crackme2 - small
- ;
- ; by scut / blizzard
-
- .model tiny
- .486
-
- codeseg
- org 100h
-
- start: mov si,(offset msg-1)
- std
- mov cl,(offset msg-82h)
- sl0: lodsb
- adc bl,al
- rol ebx,5
- dec cl
- jnz sl0
-
- comment ⌡
- high speed g-lfsr implementation for intel cpus
- will assemble to 22 bytes.
-
- b920000000.0facd801.d1eb.7306.81f3570000c0.49.75ef
- (c) scut 1998
- ⌡
-
- ; modified for use with crackme2 :)
- ; galois linear feedback shift register
-
- cld
- mov si,offset msg
- mov di,si
- mov ch,7
- glls: mov cl,8 ; 32 bits to fill
- gll0: shrd edx,ebx,1 ; edx = >>output, ebx = |lfsr|
- shr ebx,1 ; cf = lfsr[0]
-
- ; jnc gll2 ; == 1 ?
- db 73h, 07h
-
- xor ebx,11000000000000000000000001010111b ; ^ tap sequence
- gll2: dec cl ; 8bits ?
- jnz gll0 ; no -> --^
- shr edx,32-8
- lodsb
- xor al,dl
- stosb
- dec ch
- jnz glls
-
- mov ah,09h
- mov dx,offset msg
- int 21h
- ret
-
- msg db 06Dh,28h,05h,0F3h,0C5h,0Ch,3Dh,'$'
-
- ;msg db 'valid',13,10,'$'
- end start
-