• 标 题:好久没来,贴个安全卫士注册机(masm6.0) (10千字)
  • 作 者:funyliang
  • 时 间:2001-12-5 15:56:43
  • 链 接:http://bbs.pediy.com

.386
      .model flat,stdcall
      option casemap:none
include        \MASM32\INCLUDE\windows.inc
include        \MASM32\INCLUDE\user32.inc
include        \MASM32\INCLUDE\kernel32.inc
include        \MASM32\INCLUDE\comctl32.inc
include        \MASM32\INCLUDE\comdlg32.inc
include        \MASM32\INCLUDE\masm32.inc

includelib      \MASM32\LIB\masm32.lib
includelib      \MASM32\LIB\user32.lib
includelib      \MASM32\LIB\kernel32.lib
includelib      \MASM32\LIB\comctl32.lib
includelib      \MASM32\LIB\comdlg32.lib


DLG_MAIN        equ    100
IDGEN          equ    10
Edit1          equ    11
Edit2          equ    12


_ProcDlgMain    PROTO    :DWORD,:DWORD,:DWORD,:DWORD
_Math          PROTO    :DWORD,:DWORD,:DWORD
BlowFish_En        PROTO    :DWORD,:DWORD
BlowFish_Fun    PROTO    :DWORD
BlowFish_Init  PROTO    :DWORD,:DWORD

.data?
hInstance      dd      ?

        .data
szhex  dd  0
jqhlen  dd 0
szID        db 20 dup(0)
szText      db 9 dup(0)
fudian1 dd 3fdca138h,406d9168h,415c6944h,42c60000h
zhong  dd 0
sn      dd 0
tem    dd 0
ftem    dd 0
ftem1  dd 1
ftem2  dd 0
fa      dd 0
fb      dd 0
fc      dd 0
fd      dd 0
sztxt  db 20 dup (0)
sztxt1  db 20 dup (0)

          .code
          gao          proc
                    mov edx,tem
                    imul edx, 08088405h
                    inc edx
                    mov tem,edx
                    mul edx
                    mov eax, edx
                    ret
        gao          endp


jsaqws      proc uses eax ebx ecx edx esi edi
                    mov eax,szhex
                    mov ecx,013dh
                    cdq
            idiv ecx
                    mov tem,edx
                    mov eax,0104ah
                    call  gao
                    mov esi,eax
                    mov eax,016c6h
                    call  gao
                    add  esi,eax
                    mov  zhong,esi
                    fild  dword ptr zhong
                    lea  eax,fudian1
                    fmul  dword ptr [eax]
                    fstp dword ptr ftem
                    fild  ftem1
                    fld  ftem
                    fprem
                    fstp dword ptr ftem2
                    fld  ftem
                    fld  ftem2
                    fsub
                    lea  eax,fudian1
                    fmul  dword ptr [eax]
                    fstp dword ptr ftem
                    fild  ftem1
                    fld  ftem
                    fprem
                    fstp dword ptr ftem2
                    fld  ftem
                    fld  ftem2
                    fsub
                    fist dword ptr fa
                    finit
                    mov eax,szhex
                    mov ecx,011h
                    cdq
                idiv ecx
                    xor  edx,013h
                    mov zhong,edx
                    fild  dword ptr zhong
                    lea  eax,fudian1
                    add  eax,4
                    fmul  dword ptr [eax]
                    fstp dword ptr ftem
                    fild  ftem1
                    fld  ftem
                    fprem
                    fstp dword ptr ftem2
                    fld  ftem
                    fld  ftem2
                    fsub
                    fist dword ptr tem
                    finit
                    mov  eax,0f77h
                    call gao
                    mov  esi,eax
                    mov  eax,021e1h
                    call gao
                    add  esi,eax
                    mov eax,017h
                    call gao
                    xor  esi,eax
                    mov  fb,esi
                    fld  dword ptr fudian1
                    lea  eax,fudian1
                    add  eax,4
                    fadd dword ptr [eax]
                    add  eax,4
                    fadd dword ptr [eax]
                    mov eax,szhex
                    mov ecx,0fh
                    cdq
                idiv ecx
                    xor  edx,0dh
                    mov  ftem,edx
                    fild dword ptr ftem
                    faddp st(1), st
                    fstp dword ptr ftem
                    fild  ftem1
                    fld  ftem
                    fprem
                    fstp dword ptr ftem2
                    fld  ftem
                    fld  ftem2
                    fsub
                    fist dword ptr tem
                    finit
                    mov  eax,0f8bh
                    call gao
                    mov esi,edx
                    mov  eax,01c69h
                    call gao
                    add esi,edx
                    mov eax,0e59h
                    call gao
                    add esi,edx
                    mov eax,0defh
                    call gao
                    add esi,edx
                    mov eax,02172h
                    call gao
                    add esi,edx
                    mov fc,esi
                    lea eax,fudian1
                    add eax,12
                    fld dword ptr [eax]
                    lea eax,fudian1
                    fmul dword ptr [eax]
                    fstp dword ptr ftem
                    fild  ftem1
                    fld  ftem
                    fprem
                    fstp dword ptr ftem2
                    fld  ftem
                    fld  ftem2
                    fsub
                    fist dword ptr ftem
                    mov  eax,szhex
                    mov  ecx,ftem
                    cdq
                    idiv ecx
                    mov  edi,edx
                    mov eax,0b4h
                    call gao
                    mov  zhong,eax
                    fild zhong
                    fsin
                    mov  zhong,100
                    fild zhong
                    fmul
                    fstp dword ptr ftem
                    fild  ftem1
                    fld  ftem
                    fprem
                    fstp dword ptr ftem2
                    fld  ftem
                    fld  ftem2
                    fsub
                    fist dword ptr ftem
                    mov  esi,ftem
                    finit
                    mov ftem,edi
                    fild ftem
                    lea  eax,fudian1
                    add  eax,8
                    fmul  dword ptr [eax]
                    fstp dword ptr ftem
                    fild  ftem1
                    fld  ftem
                    fprem
                    fstp dword ptr ftem2
                    fld  ftem
                    fld  ftem2
                    fsub
                    fist dword ptr ftem
                    add  esi,ftem
                    mov  tem,esi
                    mov  eax,0f4fh
                    call gao
                    mov esi,eax
                    mov  eax,1dd1h
                    call gao
                    add esi,eax
                    add esi,fa
                    add esi,fb
                    add esi,fc
                    lea edi,sztxt1
                    mov eax,esi
                    xor ebx,ebx
            es002:  mov ecx,10
                    cdq
                    idiv ecx
                    add edx,030h
                    mov [edi],edx
                    inc edi
                    inc ebx
                    cmp  eax,0
                    jz  es003
                    jmp es002
            es003:  lea esi,sztxt1
                    add esi,ebx
                    dec esi
                    lea edx,sztxt
            es001:  mov al,[esi]
                    mov [edx],al
                    dec esi
                    inc edx
                    dec ebx
                    jnz es001
                    ret

                    ret
        jsaqws      endp

        _ProcDlgMain proc uses ebx edi esi edx ecx,hWnd:DWORD,wMsg:DWORD,wParam:DWORD,lParam:DWORD
        mov    eax,wMsg
        .if    eax==WM_CLOSE
                invoke  EndDialog,hWnd,NULL
        .elseif eax==WM_COMMAND
                mov  eax,wParam
                and  eax,0ffffh
                .if    eax==IDGEN
        invoke  GetDlgItemText,hWnd,Edit1,offset szID,50
        mov    jqhlen,eax
                mov    esi,offset szID
        mov    edi,eax
                xor    eax,eax
      cs008:  imul    eax,10
                mov    bl,[esi]
                cmp    bl,030h
                jl      c010
                cmp    bl,039h
                jg      c010
                sub    bl,030h
                and    ebx,0ffh
                add    eax,ebx
                inc    esi
                dec    edi
                jnz    cs008
                mov    szhex,eax
                invoke  jsaqws
                invoke  SetDlgItemText,hWnd,Edit2,offset sztxt
    c010:    mov    eax,FALSE
                        ret
                .elseif eax==IDCLOSE
                        invoke  EndDialog,hWnd,NULL
                .endif
        .else
                mov    eax,FALSE
                ret
        .endif
        mov    eax,TRUE
        ret

_ProcDlgMain endp

        ;主程序
start: 
        invoke  InitCommonControls
        invoke  GetModuleHandle,NULL
        mov    hInstance,eax
        invoke  DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,0
        invoke  ExitProcess,NULL
end    start

end   
;资源文件
#define WS_VISIBLE          0x10000000L
#define WS_CAPTION          0x00C00000L
#define WS_SYSMENU          0x00080000L
#define WS_THICKFRAME      0x00040000L
#define WS_POPUP            0x80000000L
#define DS_MODALFRAME      0x80L
#define SS_LEFT            0x00000000L
#define SS_CENTER          0x00000001L
#define ES_LEFT            0x0000L
#define BS_PUSHBUTTON      0x00000000L
#define          IDGEN      10
#define IDCLOSE        8
#define          DLG_MAIN  100
#define          EDIT1      11
#define          EDIT2      12
IDI_ICON1 ICON "smenu.ico"
DLG_MAIN    DIALOGEX    100,150,150,80
STYLE        DS_MODALFRAME|WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME
CAPTION        "美萍安全卫士注册机"
FONT        9,"宋体"
BEGIN
CONTROL        "机器号:",-1,"Static",SS_LEFT,05,14,30,17
CONTROL        "注册码:"  ,-2,"Static",SS_LEFT,05,41,40,17
CONTROL        "制作-=Funyliang[CNCG]/CYL=-本软件纯属研究之用,请勿用于非法途径"  ,-2,"Static",SS_CENTER,05,60,140,17
CONTROL        ""    ,11,"Edit",ES_LEFT,35,13,70,10
CONTROL        ""    ,12,"Edit",ES_LEFT,35,40,70,10
CONTROL        "算号",IDGEN,"BUTTON",BS_PUSHBUTTON,110,11,35,15
CONTROL        "退出",IDCLOSE,"BUTTON",BS_PUSHBUTTON,110,37,35,15
END