昨天刚完成处男作破解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
[培训]科锐逆向工程师培训第53期2025年7月8日开班!