破解Access的密码(2)
2008-02-23 08:04:52来源:互联网 阅读 ()
代码: 中.国.站长站
//这里定义的是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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:数据库应用程序需注意的问题
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
