欢迎来到 嗅灵易学

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

BadCopy99V2.0注册机(MASM版) --by fpx (4千字)

BadCopy99V2.0注册机(MASM版) --by fpx (4千字)

BadCopy99V2.0注册机(MASM版) 华军
注册机下载fpxxp.com/bc2-key.exe

; #########################################################################
; KeyGenerator for xxx, coded by fpx 2002(注册机模板)
; #########################################################################
      .386
      .model flat, stdcall
      option casemap :none  ; case sensitive 区分大小写
; #########################################################################
      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\masm32.inc
      includelib c:\masm32\lib\user32.lib
      includelib c:\masm32\lib\kernel32.lib
      includelib c:\masm32\lib\gdi32.lib
      includelib c:\masm32\lib\masm32.lib
; #########################################################################
        szText MACRO Name, Text:VARARG
          LOCAL lbl
            jmp lbl
              Name db Text,0
            lbl:
          ENDM
         
        WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
       
    .data
        TheName    dd 0
        Button      dd 0
        hInstance  dd 0
        hIconImage  dd 0
        hIcon      dd 0
        dlgname    db "KEYGEN",0
        errorLabel  db "Error"
        szName      db 30 dup(?)
        szKey      db 10 dup(?)
        szWS        db '%d',0
; #########################################################################
    .code
start:
      invoke GetModuleHandle, NULL
      mov hInstance, eax
      ; call dialog box stored in resource file
      invoke DialogBoxParam,hInstance,ADDR dlgname,0,ADDR WndProc,0
      invoke ExitProcess,eax
; #########################################################################
WndProc proc hWin:DWORD, uMsg:DWORD, wParam:DWORD, lParam :DWORD
    LOCAL Ps:PAINTSTRUCT
      ; initialization
      .if uMsg == WM_INITDIALOG
        szText dlgTitle,"fpx's KeyGenerator for BadCopy99V2.0"
        invoke SendMessage,hWin,WM_SETTEXT,0,ADDR dlgTitle
        invoke LoadIcon,hInstance,200
        mov hIcon, eax
        invoke SendMessage,hWin,WM_SETICON,1,hIcon
        invoke GetDlgItem,hWin,100
        mov TheName, eax
        invoke GetDlgItem,hWin,1000
        mov Button, eax
        xor eax, eax
        ret
      .elseif uMsg == WM_COMMAND
        .if wParam == 1000
            invoke GetDlgItemText,hWin,100,offset szName,30    ; 获得姓名
            cmp eax,1
            jl NoName  ; 检查姓名输入情况
            push eax    ; 姓名长度
            push offset szName  ; 姓名=dlgitemtext入栈
            call generateKey    ; 调用算码程序
            invoke wsprintf,offset szKey,offset szWS,eax ; 写序列号
            invoke SetDlgItemText,hWin,22,offset szKey ; 将序列号显示出来
            jmp NoError
          NoName:  ; 如果没输姓名
            szText errorMsg,"I Need Characters  :)"
            invoke MessageBox,hWin,ADDR errorMsg,ADDR errorLabel,MB_OK
          NoError: 
        .endif
       
      .elseif uMsg == WM_CLOSE
        invoke EndDialog,hWin,0
       
      .elseif uMsg == WM_PAINT
        invoke BeginPaint,hWin,ADDR Ps
        invoke FrameWindow,hWin,0,1,1
        invoke FrameWindow,hWin,1,1,0
        invoke EndPaint,hWin,ADDR Ps
        xor eax, eax
        ret
      .endif
    ret
WndProc endp
; ########################################################################
; 算码过程,基本上参考反汇编代码,可见学好32位汇编真的很重要  :)
; ########################################################################
generateKey:
    push ebp
    mov ebp,esp
    push ebx
    push ecx
    push edx
    push edi
    push esi
    push ebp
    xor esi,esi ; esi清零
    mov ecx,eax ; 姓名长度传入ecx
    mov eax,1
  addr_1:
    mov edx,[offset szName]
    mov dl,[eax+szName-1] ; 依次取姓名
    and edx,255    ; FF即255
    mov ebx,edx    ; 注册码最后储存在esi
    imul ebx,eax
    add esi,ebx
    mov ebx,edx
    inc eax
    dec ecx
    jnz addr_1
    mov eax, 6695bh   
    sub eax,esi ; 结果存入eax
    pop ebp
    pop esi
    pop edi
    pop edx
    pop ecx
    pop ebx
    leave             
    retn 00008h
   
; ########################################################################
end start

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

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

0 0 0 举报
复制成功