home *** CD-ROM | disk | FTP | other *** search
- IDC_EXIT equ 3
- IDC_CHECK equ 4
- IDC_EDIT1 equ 104
-
- includelib import32.lib
- include windows.inc
- extrn GetModuleHandleA:proc
- extrn DialogBoxParamA:Proc
- extrn ExitProcess:Proc
- extrn MessageBoxA:proc
- extrn EndDialog:Proc
- extrn UpdateWindow:proc
- extrn MessageBoxA:proc
- extrn GetDlgItemTextA:proc
- extrn RegCreateKeyA:proc
- extrn RegSetValueExA:proc
- extrn RegCloseKey:proc
- .386
- .model flat
- .data
- dialog_name db "Dlg1",0
- nm db 22h dup (0)
- nmm db 10h dup (0)
- nmmm db '-[TS]',0
- key dd ?
- s db "Software\TrickSoft\fusS\Crackme05",0
- sss db "UserName",0
- ssss db "MagicValue",0
- capt db "Error",0
- text db "Can't create or write key...",0
- capt1 db "Congratulations...",0
- text1 db "fusS' 5th crackme is registered now...That's all",0
- .code
- _start:
- xor ebx,ebx
- push ebx
- call GetModuleHandleA
- push ebx
- push offset dialog_proc
- push ebx
- push offset dialog_name
- push eax
- call DialogBoxParamA
- push ebx
- call ExitProcess
-
- dialog_proc proc near
- push ebp
- mov ebp,esp
- dp_hWnd equ dword ptr [ebp+8h]
- dp_uMsg equ dword ptr [ebp+0ch]
- dp_wParam equ dword ptr [ebp+10h]
- dp_lParam equ dword ptr [ebp+14h]
- mov ecx,dp_hWnd
- mov eax,dp_uMsg
- cmp eax,WM_INITDIALOG
- jne not_initdialog
- mov ecx,dp_hWnd
- push dp_hWnd
- call UpdateWindow
- not_initdialog:
- cmp eax,WM_CLOSE
- jne not_close
- push 0
- push ecx
- call EndDialog
- not_close:
- cmp eax,WM_COMMAND
- jne not_command
- mov eax,dp_wParam
- cmp eax,IDC_EXIT
- jne not_exit
- push 0
- push ecx
- call EndDialog
- not_exit:
- cmp eax,IDC_CHECK
- jne not_check
- mov esi,offset nm
- push 20h
- push esi
- push esi
- push IDC_EDIT1
- push dp_hWnd
- call GetDlgItemTextA
- push offset key
- push offset s
- push 80000002h
- call RegCreateKeyA
- test eax,eax
- je not_err
- erro:
- push 0h
- push offset capt
- push offset text
- push dp_hWnd
- call MessageBoxA
- jmp not_check
- not_err:
- mov esi,offset nm
- xor ecx,ecx
- xor edi,edi
- l1:
- xor ebx,ebx
- lodsb
- or al,al
- je l2
- mov bl,al
- mov bh,[esi]
- mov eax,ebx
- imul ebx
- add edi,eax
-
-
- inc ecx
- jmp l1
- l2:
- push ecx
- mov ecx,5
- add edi,0bab1e5h+63h*2
- imul edi,0deadbeefh
- sub edi,0deadbeefh
- mov ebx,10
- mov eax,edi
- mov edi,offset nmmm
- l3:
- xor edx,edx
- div ebx
- dec edi
- add dl,'0'
- mov [edi],dl
- inc ecx
- or eax,eax
- jne l3
- push offset nm
- push 1h
- push 0h
- push offset sss
- push key
- call RegSetValueExA
- test eax,eax
- jne erro
- push ecx
- push offset edi
- push 1h
- push 0h
- push offset ssss
- push key
- call RegSetValueExA
- test eax,eax
- jne erro
- push key
- call RegCloseKey
- push 0h
- push offset capt1
- push offset text1
- push dp_hWnd
- call MessageBoxA
- not_check:
- xor eax,eax
- inc eax
- leave
- ret 16
- not_command:
- xor eax,eax
- leave
- ret 16
- dialog_proc endp
-
-
- end _start
-
- .386
- .model tiny
- cseg segment para public 'code' use16
- assume cs:cseg,ds:cseg
- org 100h
- start:
- mov ah,09h
- mov dx,offset copyright
- int 21h
- inc ah
- mov dx,offset nm
- int 21h
- mov cl,byte ptr nm+1
- cmp cl,5h
- ja ok
- mov ah,09h
- mov dx,offset error
- int 21h
- ret
- ok:
- mov ah,09h
- mov dx,offset messy2
- int 21h
- movzx ecx,cl
- mov si,offset nm+2
- lea edi,[esi+ecx]
- mov byte ptr [di],0
- xor ebp,ebp
- l1:
- xor ebx,ebx
- lodsb
- mov bl,al
- mov bh,[si]
- mov eax,ebx
- imul ebx
- add ebp,eax
- loop l1
- mov dx,di
- mov ah,09h
- int 21h
- ret
-
- copyright db 13,10,'KeyText 2000 v2.16 keygen by nh',13,10
- db ' ■ Name : $'
- messy2 db 13,10,' ■ Key : $-[TS]$'
- error db 13,10,'Too little name...$'
- nm dw 20h
-
- ends
- end start
- end
-
-
-
-
-