瑞鲁手机APP下载网_专注推荐好用的手机APP和游戏APP

BootStar

BootStar v7.33 keygen in pure win32asm

查看人次:1摘自:瑞鲁下载网

很久没见到这么简单的玩意儿了,不容易。 使用,转载请保持完整性。 ;====================================================================== ;BootStar v7.33 keygen by arbiter.  Feb.2002. ;Assemble: ;tasm32 /mx /m4 /z keygen.asm ;tlink32 -x -V4.0 -Tpe -aa -c keygen.obj,keygen,,,keygen.def,keygen.res ;====================================================================== .386 .MODEL FLAT, STDCALL LOCALS UNICODE    = 0 include E:\TASM5Plus\TASM5Plus\INCLUDE\w32.inc includelib E:\TASM5Plus\TASM5Plus\LIB\imp32i.lib IDD_DIALOG        equ      101 EDIT_NAME        equ      1001 EDIT_CODE        equ      1002 BT_ABOUT      equ      1003 BT_EXIT          equ      1004 extrn    wsprintfA    :    PROC extrn    CharUpperA    :    PROC     extrn    memset      :    PROC      minl    =    10 maxl    =    60 .DATA defName        db    "arbiter[CCG]", 0 cap        db    "BootStar v7.33 KeyGen by arbiter[CCG]", 0 format        db    "BM1-%s-%s-%s", 0 abouttxt    db    "$^)  , 13, 10         db    "Key Generator for BootStar v7.33  , 13, 10                 db     "@@@ Made by arbiter[CCG] @@@ , 13, 10, 13, 10                 db    "Hope you'll be satisfied! with  , 13, 10                 db     "this release from arbiter. , 13, 10         db    "to be continue...  , 0 aboutcap    db    "uh-huh!", 0 insuLen        db    "Name length must equal or greater 10!", 0 .DATA? hdlg        dd ? _hInst        dd ? nlen        dd ? uName        db 60 dup( ? ) uCode        db 30 dup( ? ) temp        db 30 dup( ? ) part1        db 10 dup( ? ) part2        db 10 dup( ? ) part3        db 10 dup( ? ) .CODE Start:    pushad     call    GetModuleHandle, 0     test    eax, eax     je    @out     mov    _hInst, eax     call    DialogBoxParamA, _hInst, IDD_DIALOG, 0, offset DlgProc, 0 @out:     popad     call    ExitProcess, 0     RET ;---------------------------------------------------------------------- DlgProc    PROC    __hWnd : DWORD, wmsg : UINT, _wParam : WPARAM, _lParam : LPARAM     uses    ebx, esi, edi     mov    eax, wmsg     cmp    eax, WM_CLOSE     jz    _wmDes     cmp    eax, WM_COMMAND     jz    _wmCmd     cmp    eax, WM_INITDIALOG     jz    _wmInit     xor    eax, eax     RET ;---------------------------------------------------------------------- _wmDes:     call    EndDialog, hdlg, 0     RET ;---------------------------------------------------------------------- _wmCmd:     mov    eax, _wParam     cmp    ax, EDIT_NAME     jnz    nochange     shr    eax, 16     cmp    ax, EN_CHANGE     jnz    nochange     call    Generate     xor    eax, eax     RET nochange:     cmp    ax, BT_ABOUT             jnz    noAbout     call    MessageBoxA, hdlg, offset abouttxt, offset aboutcap, \             MB_ICONINFORMATION OR MB_OK OR MB_APPLMODAL          jmp    cout noAbout:     cmp    ax, BT_EXIT     jz    _wmDes cout:     xor    eax, eax     RET ;-----------------------------------------------------------------------             _wmInit:     mov    eax, __hWnd     mov    hdlg, eax     call    GetDlgItem, __hWnd, EDIT_NAME     call    SendMessageA, eax, EM_SETLIMITTEXT, maxl, 0     call    SetWindowTextA, __hWnd, offset cap     call    SetDlgItemTextA, __hWnd, EDIT_NAME, offset defName     push    1     pop    eax     RET DlgProc    ENDP     ;----------------------------------------------------------------------- Generate PROC     call    GetDlgItemtextA, __hWnd, EDIT_NAME, offset uName, maxl + 1     cmp    eax, minl     jl    @CharsInsufficient     mov    nlen, eax     push    offset uName     call    CharUpperA     mov    ecx, nlen     xor    eax, eax     xor    edx, edx     lea    esi, uName @conti:     mov    al, byte ptr[esi]     add    edx, eax     inc    esi     dec    ecx     jnz    @conti     xchg    dh, dl     push    dx     call    memset, offset part1, 0, 10     add    esp, 12     pop    dx     lea    edi, part1     mov    byte ptr[edi], 2     mov    word ptr[edi+1], dx     push    edi     push    offset temp     call    Computel     mov    eax, dword ptr[temp]     mov    dword ptr[part2], eax     mov    al, byte ptr[uName]     mov    byte ptr[part2+4], al  ;finish constructing the 2nd part.          mov    dx, word ptr[uName]     push    dx     call    memset, offset part1, 0, 10     add    esp, 12     pop    dx     lea    edi, part1     mov    byte ptr[edi], 2     mov    word ptr[edi+1], dx     push    edi     push    offset temp     call    Computel     mov    eax, dword ptr[temp]     mov    dword ptr[part3], eax  ;finish constructing the 3rd part.          call    memset, offset part1, 0, 10     add    esp, 12     lea    edi, part1     mov     byte ptr[edi], 1     mov    eax, nlen     mov    byte ptr[edi+1], al     push    edi     push    offset temp     call    Computel     mov    ax, word ptr[temp]     push    ax     push    ax          call    memset, offset part1, 0, 10     add    esp, 12     pop    ax     lea    edi, part1     lea    esi, uName     mov    word ptr[edi], ax     mov    al, byte ptr[esi+1]     inc    edi     inc    edi     stosb                          ;be preparing the 1st part...     call    memset, offset temp, 0, 30     add    esp, 12     push    offset part3     push    offset part2     push    offset part1     call    wsprintfA, offset temp, offset format     add    esp, 20                                          ;now checking out the mid-age buffer length.     or    ecx, 0FFFFFFFFH     lea    edi, temp     xor    al, al     repnz    scasb     neg    ecx     dec    ecx     xor    edx, edx     lea    esi, [temp]        ;sum up the temp buf for finalizing the part1. sum2:    xor    eax, eax     mov    al, byte ptr[esi]     add    dx, ax     inc    esi     dec    cl     jnz    sum2     push    dx     call    memset, offset temp, 0, 30     add    esp, 12     pop    dx     lea    edi, [part1]     mov    byte ptr[edi], 1     mov    byte ptr[edi+1], dl     push    edi     push    offset temp     call    Computel     call    memset, offset part1, 0, 10     add    esp, 12     pop    ax     lea    edi, [part1]     mov    word ptr[edi], ax     mov    ax, word ptr[temp]     mov    word ptr[edi+2], ax     mov    al, byte ptr[uName+1]     mov    byte ptr[edi+4], al            ;finishing constructing 1st part.          call    memset, offset uCode, 0, 30     add    esp, 12     push    offset part3     push    offset part2     push    offset part1     call    wsprintfA, offset uCode, offset format     add    esp, 20          call    SetDlgItemTextA, hdlg, EDIT_CODE, offset uCode GenOk:    xor    eax, eax     RET @CharsInsufficient:     call    SetDlgItemTextA, hdlg, EDIT_CODE, offset insuLen     jmp    GenOk Generate ENDP                                                            ;----------------------------------------------------------------------- Computel PROC     push    ebp     mov    ebp, esp     push    ebx     push    edi     push    esi     xor    eax, eax     xor    ebx, ebx     xor    edx, edx     mov    esi, [ebp+12]     mov    edi, [ebp+8]     mov    bh, byte ptr[esi]     xor    ecx, ecx goon:     inc    esi     mov    bl, byte ptr[esi]     inc    cl     mov    eax, 0A5H     shl    eax, cl     xor    bl, cl     xor    bl, 0A5H     xor    al, bl     mov    dl, al     and    edx, 15     shr    al, 4     movzx    eax, al     mov    al, cctab[eax]     mov    ah, cctab[edx]     stosw     dec    bh     jnz    goon          pop    esi     pop    edi     pop    ebx     pop    ebp     RET    8 cctab    db    "0123456789ABCDEF"     Computel ENDP ;---------------------------------------------------------------------- END Start

相关文摘:破解文章 windows
标题名称:《BootStar》
本文网址:https://www.sdruilu.cn/news/tpart-20860.html