加密算法之BLOWFISH算法(4)

时间:2005-12-20 来源: 作者: 点击:
;如果你直接用ComputerID产生序列号,从这里到mov MYBFLOW,ebx一段应该屏蔽 invoke GetDlgItemText,hWnd,Edit1,offset szID,17 xor ebx,ebx xor eax,eax mov esi,offset szID mov ecx,8 @@33: or ebx,eax xor eax,eax lodsb cmp eax,39h jle @@3 sub eax,7 @@3: sub eax
  ;如果你直接用ComputerID产生序列号,从这里到mov MYBFLOW,ebx一段应该屏蔽
        invoke  GetDlgItemText,hWnd,Edit1,offset szID,17
        xor    ebx,ebx
        xor    eax,eax
        mov    esi,offset szID
        mov    ecx,8
    @@33:
        
        or      ebx,eax
        xor    eax,eax
        lodsb
        cmp    eax,39h
        jle    @@3
        sub    eax,7
    @@3:
        sub    eax,30h
        
        shl    ebx,4
        loop    @@33
        or      ebx,eax
        mov    MYBFHIGH,ebx

        mov    esi,offset szID+8
        mov    ecx,8
        xor    eax,eax
        xor    ebx,ebx
    @@44:
        or      ebx,eax
        lodsb
        cmp    eax,39h
        jle    @@4
        sub    eax,7
    @@4:
        sub    eax,30h
        shl    ebx,4
        loop    @@44
        or      ebx,eax
        mov    MYBFLOW,ebx
;…………………………………………………………………………………………………………
;如果你直接用ComputerID产生序列号,这里后面的所有语句你都应将其激活
;        invoke  BlowFish_Init,offset PW_1,23
;        invoke  BlowFish_En,offset data1_p,offset data1_p+4
;        MOV    EAX,BFHIGH
;        MOV    MYBFHIGH,EAX
;        MOV    EAX,BFLOW
;        MOV    MYBFLOW,EAX
        invoke  BlowFish_Init,offset PW_2,18
        invoke  BlowFish_En,offset MYBFHIGH,offset MYBFLOW
        MOV    EAX,BFHIGH
        MOV    MYBFHIGH,EAX
        MOV    EAX,BFLOW
        MOV    MYBFLOW,EAX
        invoke  BlowFish_Init,offset PW_3,14
        invoke  BlowFish_En,offset MYBFHIGH,offset MYBFLOW

        mov    ebx,BFHIGH
        mov    eax,ebx
        mov    edi,offset szText
        mov    ecx,8
    @@12:
        mov    eax,ebx
        shl    ebx,4
        shr    eax,28
        cmp    eax,9
        jle    @@11
        add    eax,7
    @@11:      add    eax,30h
        and    eax,0ffh
        stosb
        loop    @@12

        mov    ebx,BFLOW
        mov    eax,ebx
        mov    edi,offset szText+8
        mov    ecx,8
    @@22:
        mov    eax,ebx
        shl    ebx,4
        shr    eax,28
        cmp    eax,9
        jle    @@21
        add    eax,7
    @@21:      add    eax,30h
        and    eax,0ffh
        stosb
        loop    @@22

        xor    eax,eax
        mov    [edi],eax
        invoke  SetDlgItemText,hWnd,Edit2,offset szText
        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   

;资源文件:rsrc.rc
;#include          <Resource.h>
;#define          IDGEN      10
;#define       DLG_MAIN  100
;#define            EDIT1      11
;#define            EDIT2      12
;
;DLG_MAIN    DIALOGEX    100,150,250,60
;STYLE        DS_MODALFRAME|WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME
;CAPTION        "BlowFish's CrackMe KenGen By 夜月[CCG]  "
;FONT        9,"宋体"
;
;BEGIN
;CONTROL        " ID:",-1,"Static",SS_LEFT,10,13,40,17
;CONTROL        "SN:"  ,-2,"Static",SS_CENTER,10,40,20,17
;CONTROL        ""    ,11,"Edit",ES_LEFT,30,13,150,10
;CONTROL        ""    ,12,"Edit",ES_LEFT,30,40,150,10
;CONTROL        "GENERATE",IDGEN,"BUTTON",BS_PUSHBUTTON,200,11,40,15
;CONTROL        "EXIT",IDCLOSE,"BUTTON",BS_PUSHBUTTON,200,36,41,14
;END

------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容