欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

ASM KEY_GEN,也来凑热闹,顺便练练手 (3千字)

ASM KEY_GEN,也来凑热闹,顺便练练手 (3千字)

练练手,很久没用汇编写东西了。
另外,都Win时代了注册机是不是该换换皮肤了,老是dos界面总使人觉得与时代脱节。。。
如何写随机数生成代码?有没有对应Api?这里没有随机部分,望高手指教。。。
汇编写注册有时最方便不过,如果算法较复杂,就可分析出入口和出口,然后将反汇编代码修改一下粘贴过来,加上GUI部分就可以了,最大的优点是速度快,体积小,win32汇编编程几乎与C一样方便,只可惜,时间太有限了,人的生命太短暂了......
COMPILE:
cls
ml /c /coff /Cp  wf.asm
rc /v wf.rc
link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib wf.obj wf.res
wf.asm****************************************
.386
.model flat,stdcall
option casemap:none
include hd.h
_ProcDlg proto :DWORD,:DWORD,:DWORD,:DWORD 
;->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>data seg
        .data
CurrentEbx dd 99999999
flg_found  dd 0
MsgMesaage1 db "All possible Keys have been passed,restart the program! ",0
MsgCap      db "By (C)hume,July,2001",0
szBuf1      db 20 dup(0)
szBuf2      db "NE-%d-EWD",0
        .data?
hInstance  HANDLE ?
        .const
DLG_MAIN equ     1000
GEN     equ     1001
XIT     equ     1002
EDIT_COD equ    1003
  ;-->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>code seg
         
        .code
start: 
    invoke    GetModuleHandle,NULL
    mov    hInstance,eax
    invoke    DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlg,0
    invoke    ExitProcess,NULL
_ProcDlg    proc    uses ebx edi esi, \
        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
          .IF lParam!=0
            .if ax==GEN
            mov ebx,CurrentEbx
        lopcal:    inc ebx
            cmp    ebx, 5F5E100h  ;<--注册码数字部分必须在
            jl    New_over      ;  |  100000000至
            cmp    ebx, 3B9AC9FFh ; |  999999999之间
            jge    New_over      ;<--
            call Cal
            cmp  flg_found,1
            jnz  lopcal
            mov  CurrentEbx,ebx
            invoke RtlZeroMemory,addr szBuf1,20
            invoke wsprintf,addr szBuf1,addr szBuf2,ebx
            invoke SetDlgItemText,hWnd,EDIT_COD,addr szBuf1
            
                        .elseif ax==XIT
            invoke SendMessage,hWnd,WM_CLOSE,NULL,NULL
            .endif
            
          .ENDIF
        .else
        mov eax,FALSE
        ret
          .endif
        mov eax,TRUE
        ret
    New_over:
        invoke MessageBox,NULL,addr MsgMesaage1,addr MsgCap,MB_OK or MB_ICONEXCLAMATION
        ret
_ProcDlg    ENDP        
Cal        PROC    uses eax ebx
        mov    eax, ebx
        mov    ecx, 4Dh
        cdq
        idiv  ecx            ;<--注册码除以77
        add    eax, 309416C0h ;<--商+815011520
        mov    ecx, 4Dh
        cdq
        idiv    ecx            ;<--和除以77
        test    edx, edx
        jnz    ToEit
Found:
        mov flg_found,1
   
ToEit:        ret
Cal        endp
;-->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>end all
end start
wf.rc***************************************
#include <c:\masm32\include\resource.h>
#define DLG_MAIN 1000
#define GEN         1001
#define XIT         1002
#define EDIT_COD 1003
DLG_MAIN DIALOG 62, 39, 200, 45
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "网际飞鹰之极速FTP1.0 keygen By Hume"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "Generate", GEN, 148, 6, 50, 14
PUSHBUTTON "EXIT", XIT, 148, 24, 50, 14
LTEXT "USERNAME:Random", -1, 7, 6, 76, 8
LTEXT "REGCODE:", -1, 7, 21, 38, 8
EDITTEXT EDIT_COD, 47, 20, 72, 11, WS_BORDER | WS_TABSTOP
}
hd.h**************************
    include c:\masm32\include\windows.inc
    include c:\masm32\include\user32.inc
    include c:\masm32\include\kernel32.inc
    include c:\masm32\include\gdi32.inc
    include c:\masm32\include\comctl32.inc
    include c:\masm32\include\comdlg32.inc
    include c:\masm32\include\shell32.inc
    includelib c:\masm32\lib\user32.lib
    includelib c:\masm32\lib\kernel32.lib
    includelib c:\masm32\lib\gdi32.lib
    includelib c:\masm32\lib\comctl32.lib
    includelib c:\masm32\lib\comdlg32.lib
    includelib c:\masm32\lib\shell32.lib

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功