⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zenms7kg.asm

📁 破解很多程序的序列号算法程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        je      next_serial        cmp     eax,0FFFFFFFDh        je      next_serial        cmp     eax,0FFFFFFFEh        je      next_serial        cmp     eax,0FFFFFFFFh        je      next_serial                push    offset serial                   ; Pointer to the serial        push    IDC_EDIT1                       ; The edit box to put the info into        push    _hDlg                           ; The dialog handle        call    SetDlgItemText                  ; Set the text        ret                                     ; returnGenKey endp; ############### SUBROUTINE #######################################; Random Number Generator (RNG) at 22 bytesget_random_number       proc            ; Get 32-bit random number        push    eax ebx        call    GetTickCount        lea     ebx,random_number_seed  	; EBX = pointer to random_number_seed        mul     dword ptr [ebx]         	; Multiply previous miliseconds with                                        	; current miliseconds        sbb     edx,eax                 	; Add low-order word of 32-bit random                                        	; number to high-order word of 32-bit                                        	; random number        cmc                             	; Complement carry flag        adc     [ebx],edx               	; Store 32-bit random number        pop     ebx eax        retendp; ############### SUBROUTINE #######################################get_random_number_within_range  proc    	; Get random number within range        push    ebx        call    get_random_number        xchg    eax,ebx                 	; EBX = number in range        xor     eax,eax                 	; Zero EAX        xchg    eax,edx                 	; EAX = 32-bit random number        div     ebx                     	; EDX = random number within range        pop     ebx        retendp; ############### SUBROUTINE #######################################fnSerialkey      proc near  arg_0          =      dword   ptr  4  ; serial number in asciiZ         mov     eax, [esp+arg_0]         push    eax         call    sub_10003820         add     esp, 4         retn    4         fnSerialkey      endp; ############### SUBROUTINE #######################################sub_10003820     proc near  var_10         =      dword   ptr -10h  var_C          =      byte    ptr -0Ch  var_3          =      byte    ptr -3  arg_0          =      dword   ptr  4         sub     esp, 10h         push    ebx         push    ebp         mov     ebp, [esp+18h+arg_0]         push    esi         test    ebp, ebp         push    edi         jnz     short loc_1000383C         pop     edi         pop     esi         pop     ebp         mov     eax, 0FFFFFFFBh         pop     ebx         add     esp, 10h         retnloc_1000383C:         mov     edi, ebp         or      ecx, 0FFFFFFFFh         xor     eax, eax         repne scasb         not     ecx         dec     ecx         cmp     ecx, 9                         ; must be 9 chars long         jz      short loc_10003870         cmp     ecx, 0Eh                       ; or be 14 chars long         jz      short loc_1000385D         pop     edi         pop     esi         pop     ebp         or      eax, 0FFFFFFFFh         pop     ebx         add     esp, 10h         retnloc_1000385D:         cmp     byte ptr [ebp+9], 2Dh          ; dash '-'         jz      short loc_10003870         pop     edi         pop     esi         pop     ebp         mov     eax, 0FFFFFFFEh         pop     ebx         add     esp, 10h         retnloc_10003870:         mov     edx, ebp         lea     esi, [esp+20h+var_C]         sub     edx, esi         mov     [esp+20h+var_3], 0         lea     eax, [esp+20h+var_C]         mov     esi, 9loc_10003886:         mov     bl, [edx+eax]         sub     bl, 30h                        ; '0'         mov     [eax], bl         inc     eax         dec     esi         jnz     short loc_10003886         lea     eax, [ebp+0Ah]         lea     esi, [esp+20h+var_C]         mov     edi, 9                         ; 9 chars         mov     eax, [eax]         mov     [esp+20h+var_10], eaxloc_100038A4:         xor     edx, edx         xor     eax, eax         mov     dl, [esi]         mov     ebx, 0Ah         mov     al, byte ptr unk_1000C29C[edx]         xor     edx, edx         mov     dl, [esi+1]         sub     eax, edx         add     eax, 0Ah         cdq         idiv    ebx         inc     esi         dec     edi         mov     [esi-1], dl         jnz     short loc_100038A4         xor     ebp, ebp         cmp     ecx, 0Eh                               ; 14 chars         jnz     short loc_1000392C         xor     cl, clloc_100038D2:         movsx   eax, cl         mov     al, byte ptr [esp+eax+20h+var_10]         cmp     al, 30h                                ; 30 = '0'         mov     byte ptr [esp+20h+arg_0], al         jb      short loc_10003919         cmp     al, 5Ah                                ; 5A = Z         ja      short loc_10003919         cmp     al, 39h                                ; 39 = 9         jbe     short loc_10003907         cmp     al, 41h                                ; 41 = A         jb      short loc_10003919loc_100038ED:         mov     eax, [esp+20h+arg_0]         and     eax, 0FFh         sub     eax, 37h                               ; 37 = 7loc_100038F9:         shl     ebp, 5         add     ebp, eax         inc     cl         cmp     cl, 4                                  ; 4 chars         jl      short loc_100038D2         jmp     short loc_10003926loc_10003907:         cmp     al, 41h                                ; 41 = A         jnb     short loc_100038ED         mov     eax, [esp+20h+arg_0]         and     eax, 0FFh         sub     eax, 30h                               ; 30 = 0         jmp     short loc_100038F9loc_10003919:         pop     edi         pop     esi         pop     ebp         mov     eax, 0FFFFFFFDh         pop     ebx         add     esp, 10h         retnloc_10003926:         xor     ebp, 0B73BBhloc_1000392C:         xor     eax, eax         lea     ecx, [esp+20h+var_C]         mov     edx, 9loc_10003937:         xor     ebx, ebx         lea     eax, [eax+eax*4]         mov     bl, [ecx]         inc     ecx         dec     edx         lea     eax, [ebx+eax*2]         jnz     short loc_10003937         mov     esi, eax         and     eax, 0D555555h         and     esi, 0F2AAAAAAh         xor     edx, edx         xor     ecx, ecx         mov     edi, 0Dhloc_1000395B:         test    dword ptr unk_1000C194[ecx], esi         jbe     short loc_10003973         mov     ebx, dword ptr unk_1000C110[ecx]         xor     eax, ebx         mov     ebx, dword ptr unk_1000C218[ecx]         add     edx, ebxloc_10003973:         add     ecx, 4         dec     edi         jnz     short loc_1000395B         xor     ecx, ecx         mov     esi, 0Fhloc_10003980:         test    dword ptr unk_1000C1C8[ecx], ebp         jbe     short loc_10003998         mov     ebx, dword ptr unk_1000C144[ecx]         mov     edi, dword ptr unk_1000C24C[ecx]         xor     eax, ebx         add     edx, ediloc_10003998:         add     ecx, 4         dec     esi         jnz     short loc_10003980         mov     ecx, eax         xor     ecx, 0C104145h         jnz     short loc_100039B2         pop     edi         pop     esi         pop     ebp         mov     eax, edx         pop     ebx         add     esp, 10h         retnloc_100039B2:         mov     ecx, eax         xor     ecx, 0C540515h         jnz     short loc_100039C7         pop     edi         pop     esi         pop     ebp         lea     eax, [edx+1]         pop     ebx         add     esp, 10h         retnloc_100039C7:         xor     eax, 0C114055h         lea     eax, [edx+2]         jz      short loc_100039D6         mov     eax, 0FFFFFFFChloc_100039D6:         pop     edi         pop     esi         pop     ebp         pop     ebx         add     esp, 10h         retnsub_10003820     endpend          code_begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -