破解Access的密码(2)

2008-02-23 08:04:52来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

代码: 中.国.站长站

//这里定义的是13个字节作为Access2000异或的源码。与之相对应的加密标志是0x13,ccrun特此注明 ~com

//当然你可以用这一组:BE EC 65 9C FE 28 2B 8A 6C 7B CD DF 4F 与这一组相对应的加密标志是0x0c Www..com

//呵呵.程序有些乱,希望大家能看的懂 Www^^com

char PassSource2k[13]={0xa1,0xec,0x7a,0x9c,0xe1,0x28,0x34,0x8a,0x73,0x7b,0xd2,0xdf,0x50}; ^com

//Access97的异或源码 Www__com

char PassSource97[13]={0x86,0xfb,0xec,0x37,0x5d,0x44,0x9c,0xfa,0xc6,0x5e,0x28,0xe6,0x13}; 中国站长.站

以下为引用的内容:

void __fastcall TMainForm::GetMdbPass(){char PassStrTemp[26],Ver,EncrypFlag,t1;int FileHandle;String MdbPassword,MdbVersion,MdbFileName; Www@@com

FileHandle=FileOpen(MdbFileName,fmOpenRead);if(FileHandle<0){ShowMessage("文件打开错误!");return;}

//取得数据库版本FileSeek(FileHandle,0x14,0);FileRead(FileHandle,&Ver,1); 站.长.站

//取得加密标志FileSeek(FileHandle,0x62,0);FileRead(FileHandle,&EncrypFlag,1); Www~~com

//读取加密后的密码到缓冲区FileSeek(FileHandle,0x42,0);FileRead(FileHandle,&PassStrTemp,26);FileClose(FileHandle); @com

if(Ver<1){MdbVersion="Access 97";if(int(PassStrTemp[0]^PassSource97[0])==0)MdbPassword="密码为空!";else{MdbPassword="";for(int j=0;j<13;j )MdbPassword=MdbPassword char(PassStrTemp[j]^PassSource97[j]);}}else{MdbVersion="Access 2000 or 2002";MdbPassword="";for(int j=0;j<13;j ){if(j%2==0)

t1=char(0x13^EncrypFlag^PassStrTemp[j*2]^PassSource2k[j]); Www__com

//每隔一个字节就与加密标志相异或。这里的加密标志为0x13 Www^^com

else

t1=char(PassStrTemp[j*2]^PassSource2k[j]);MdbPassword=MdbPassword t1;}}if(MdbPassword[1]<0x20||MdbPassword[1]>0x7e)MdbPassword="密码为空!";EditMdbFileName->Text=MdbFileName;EditMdbPassword->Text=MdbPassword;EditMdbVersion->Text=MdbVersion;}

_com

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:用Access 2000进行班级管理

下一篇:数据库应用程序需注意的问题