文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>OllyDBG 入门系列(三)-函数参考 之 注册机的实现

OllyDBG 入门系列(三)-函数参考 之 注册机的实现

时间:2010-08-18  来源:aicro

本程序是在我阅读了

OllyDBG 入门系列(三)-函数参考 (http://bbs.pediy.com/showthread.php?s=&threadid=21330

之后根据已知的分析结果用win32汇编实现的练习。

 

具体的分析方法在原文中已经有了非常详细的解释,这里仅给出具体的注册机实现代码。由于刚学破解,请笔下留情。

 

代码 WndProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
    LOCAL    @DriveType: DWORD
    LOCAL    @szVolumnName [128] : BYTE
    LOCAL    @szBuffer[128] : BYTE

    pushad
    mov        eax,uMsg
    .if eax==WM_INITDIALOG
        push    hWin
        pop        hWnd

        .elseif eax==WM_COMMAND
        mov        eax,wParam
        and        eax,0FFFFh
        .if eax==IDM_FILE_EXIT
            invoke SendMessage,hWin,WM_CLOSE,0,0
        .elseif eax==IDM_HELP_ABOUT
            invoke ShellAbout,hWin,addr AppName,addr AboutMsg,NULL
        .elseif    eax == IDC_BTN1
            ;register
            
            ;为局部变量清零
            push    edi
            mov    ecx, 128
            lea    edi, @szVolumnName
            mov    al, 0
            rep    STOSB    
            pop    edi
            
                        ;获得卷轴属性
            invoke    GetDriveType, NULL
            push    eax
            pop    @DriveType
            
                        ;获得卷轴名
            invoke    GetVolumeInformation, NULL, addr @szVolumnName, 128, \
                                                      NULL, NULL, NULL, NULL, NULL 
            
                        ;按照破解得到的算法进行解密
            xor    edi, edi
            mov    ecx, @DriveType
            .repeat
                mov    eax, ecx
                mov    ebx, dword ptr @szVolumnName
                mul    ebx
                add    edi, eax
                ;dec    ecx  ;在反汇编后.untilcxz会自动递减ecx
            .untilcxz
            xor    edi, 797a7553h

            ;将十六进制转换成十进制, Format被定义为db '%d'
            invoke    wsprintf, addr @szBuffer, addr Format, edi
                        
                        ;显示结果
            invoke    MessageBox, NULL, addr @szBuffer, addr Result, MB_OK    
        .endif
    .elseif eax==WM_CLOSE
        invoke DestroyWindow,hWin
    .elseif uMsg==WM_DESTROY
        invoke PostQuitMessage,NULL
    .else
        invoke DefWindowProc,hWin,uMsg,wParam,lParam
        ret
    .endif
    popad
    
    xor    eax,eax
    ret

WndProc endp

 

最后在使用的时候,只需要将该程序与待破解程序放在一起即可。

 

相关阅读 更多 +
排行榜 更多 +
特工跑酷无限金币版

特工跑酷无限金币版

休闲益智 下载
东方归言录vivo版

东方归言录vivo版

飞行射击 下载
死神来了模拟器内置修改器版

死神来了模拟器内置修改器版

休闲益智 下载