首页
社区
课程
招聘
[原创]破解ACCESS打开时密码
发表于: 2007-12-6 10:54 4803

[原创]破解ACCESS打开时密码

2007-12-6 10:54
4803
昨天刚完成处男作破解ACCESS密码.但发现个问题:对汉字密码的处理不行.希望有高手帮忙改下.

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 破解ACCESS密码
; by 无名, QQ:316050822,E-MAIL:cnchaosir@hotmail.com
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 本程序为行者孙的文章《破解ACCESS密码》VFP版本改写而成,思路归原作者
; 所有。引用时请保留! ;)
; 本程序为测试使用,使用时请将db1.mdb放在D盘根目录下
; 我的汇编不太好,代码写的冗余,请高手帮助优化,不甚感激!
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff MdbPassword.asm
; rc MdbPassword.rc
; Link /subsystem:windows MdbPassword.asm MdbPassword.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>                       
                        .386
                        .model flat,stdcall
                        option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include                        windows.inc
include                        user32.inc
includelib                user32.lib
include                        kernel32.inc
includelib                kernel32.lib
include                        gdi32.inc
includelib                gdi32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                        .data
hInstance                HANDLE                ?
hFileMap                HANDLE                ?
hOpenFile                HANDLE                ?
dwDataBuffer                BYTE                128        dup(?)
dwReBuffer1                BYTE                128        dup(?)
szBuffer                BYTE                128        dup(?)
lpMemory                UINT                ?
szFormat                BYTE                '破解成功!密码是:%s',0                       
szCaption                BYTE                '提示',0
szCreateMapErr                BYTE                '创建文件映射失败!',0
szMapErr                BYTE                '映射文件到内存失败!',0
szOpenErr                BYTE                '文件打开失败!',0
szMdbPath                BYTE                'D:\db1.mdb',0
Key1                        BYTE                ?
Key                        BYTE                232
KeyList                        BYTE                155,108,236,055,064,211,156,250,219,201,040,230,014
                        BYTE                033,138,096,073,003,123,054,232,229,223,177,106,099
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                        .code

Begin:
                        pushad
                       
                        invoke        CreateFile,addr szMdbPath,GENERIC_READ,FILE_SHARE_READ,\
                        0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
                        .if        eax==INVALID_HANDLE_VALUE
                                invoke        MessageBox,NULL,addr szOpenErr,addr szCaption,MB_OK
                                jmp        _Exit
                        .endif
                        mov        hOpenFile,eax

                        invoke        CreateFileMapping,eax,0,PAGE_READONLY,0,0,0
                        .if        !eax
                                invoke        MessageBox,NULL,addr szCreateMapErr,addr szCaption,MB_OK
                                jmp        _Exit
                        .endif               
                        mov        hFileMap,eax       
                        invoke        MapViewOfFile,eax,FILE_MAP_READ,0,0,0
                        .if        eax
                                mov        lpMemory,eax
                        .else
                                invoke        MessageBox,NULL,addr szMapErr,addr szCaption,MB_OK
                                jmp        _Exit
                        .endif               
                        mov        lpMemory,eax
                        mov        esi,eax
                        xor        eax,eax
                        mov        al,byte ptr [esi+86]
                        xor        al,Key
                        mov        Key1,al
                        mov        ecx,26
                        xor        ebx,ebx
                        lea        edi,KeyList
;*****************************************************
_Loop1:                       
                        mov        ax,bx
                        xor        edx,edx
                        mov        dl,2
                        div        dl
                        cmp        ah,1
                        jz        _NextLoop1
                        mov        al,byte        ptr [esi+ebx+66]
                        xor        Byte ptr [edi+ebx],al
_NextLoop1:                        inc        ebx
                        loop        _Loop1
;*********************************************************
                        xor        ebx,ebx
                        xor        edx,edx
                        mov        ecx,13
                        lea        esi,dwDataBuffer
_Loop2:                        mov        al,BYTE PTR [edi+ebx]
                        mov        Byte ptr [esi+edx],al
                        inc        edx
                        add        ebx,2
                        loop        _Loop2               
;**********************************************************
                        xor        ebx,ebx
                        mov        ecx,13       
_Loop3:                       
                        mov        ax,bx
                        xor        edx,edx
                        mov        dl,2
                        div        dl
                        cmp        ah,1
                        jz        _NextLoop3
                        mov        al,Key1
                        xor        Byte ptr[esi+ebx],al
_NextLoop3:                inc        ebx       
                        loop        _Loop3
;***********************************************************
                        invoke        wsprintf,addr szBuffer,addr szFormat,addr dwDataBuffer
                        invoke        MessageBox,NULL,addr szBuffer,addr szCaption,MB_OK
                       
                        popad
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_Exit:
                        invoke        UnmapViewOfFile,lpMemory
                        invoke        CloseHandle,hFileMap
                        invoke        ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                        end        Begin

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 266
活跃值: (52)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
学习了

密码超过10位以后,好像就不对了
2007-12-6 12:54
0
游客
登录 | 注册 方可回帖
返回