当前位置: 首页 > news >正文

高邮市建设局网站首页做美团团购网站

高邮市建设局网站首页,做美团团购网站,营销企业网站制作,长岭网站优化公司关于Access97的密码破解#xff0c;在很多的网站和杂志上都有过介绍。在这里我简单重复一下。 在mdb文件第0x42字节处的13个字节分别与0x86,0xfb,0xec,0x37,0x5d,0x44,0x9c,0xfa,0xc6,0x5e,0x28,0xe6,0x13异或后即可得到数据库的密码。但在Access 2000和2002的版本里密钥不再是…  关于Access97的密码破解在很多的网站和杂志上都有过介绍。在这里我简单重复一下。 在mdb文件第0x42字节处的13个字节分别与0x86,0xfb,0xec,0x37,0x5d,0x44,0x9c,0xfa,0xc6,0x5e,0x28,0xe6,0x13异或后即可得到数据库的密码。但在Access 2000和2002的版本里密钥不再是固定的13个字节.而且加密的方式也有了变化。 经过ccrun用一下午的时间研究终于将Access2000的加密方式搞清楚了。嘿嘿。在此将偶的心得发布。希望对大家有用如果您发现我的理解有误请来信告之我们。信箱infoccrun.com 版权虽然有没有都没关系不过如果您要转载请注明出处并保证文档的完整性。谢谢。 我用的分析工具是UltraEdit32 v10.00编程工具是C Builder 6.0 经过用UltraEdit32分析发现Access2000和Access2002的数据库加密方式相同所以以下只针对Access2000的mdb文件。还有就是我用的是16进制的数表示所以前面加了0x如果你用的是VB或其他要注意数值哦。 首先用AccessXP创建了一个空密码的数据库文件db1.mdb包含一个表其中有一个字段没有填任何数据。保存退出然后复制一份为db2.mdb以独占方式打开2.mdb并加上密码1324567890123 保存退出。 用UltraEdit32打开这两个数据库并进行比较。我比较的方法也很简单。在UltraEdit32中快速的来回点击被打开文件的选项卡(就是在两个文件间来回切换呵呵。笨办法吧)发现从文件头开始0x42字节处发生变化。 db1.mdb 00000040hBC 4E BE 68 EC 37 65 D7 9C FA FE CD 28 E6 2B 25 00000050h 8A 60 6C 07 7B 36 CD E1 DF B1 4F 67 13 43 F7 3C 00000060hB1 33 0C F2 79 5B AA 26 7C 2A 4F E9 7C 99 05 13 db2.mdb 00000040hBC 4E 8F 68 DE 37 56 D7 A8 FA CB CD 1E E6 1C 25 00000050h B2 60 55 07 4B 36 FC E1 ED B1 7C 67 13 43 F7 3C 00000060hB1 33 0C F2 79 5B AA 26 7C 2A 4F E9 7C 99 05 13 为了看的清楚些我把不同的字节加了颜色。看出门道了吧Access97以后的版本里密码字节不再是连续存放而是隔一个字节存一个。并且经过加密。到于解密的方法嘛还是用老办法“异或”0xBE ^ 0x8F 0x31这正好是Ascii码1哦。下一个0xEC ^ 0xDE 0x32 正好是Ascii码2呵呵。一直到最后一个不同的0x4F ^ 0x7C 0x33将取得的字符合成字符串便是密码明文“1234567890123千万不要以为这样就收工了。因为这一次是正好碰对了。呵呵。我刚开始也以为就这么简单于是用CB做了个小程序试着解了几个mdb密码都还行可是试到动网论坛的mdb文件时发现取出来的密码不对晕了。于是用另外一个取mdb密码的工具看了一下发现人家的就可以正确的取出密码是Access2000的格式于是感觉微软加密的方式还是没研究完。继续工作用UltraEdit32打开动网论坛的数据库dvbbs.mdb和我前面的加过密的数据库做比较发现不同的地方很多。只好一个字节一个字节的试。。。。nnn次以后发现第0x62处的这个字节起着关键作用暂称之为加密标志。 db1.mdb //空密码 00000040hBC 4E BE 68 EC 37 65 D7 9C FA FE CD 28 E6 2B 25 00000050h 8A 60 6C 07 7B 36 CD E1 DF B1 4F 67 13 43 F7 3C 00000060hB1 33 0C F2 79 5B AA 26 7C 2A 4F E9 7C 99 05 13 db2.mdb //密码为:1234567890123 00000040hBC 4E 8F 68 DE 37 56 D7 A8 FA CB CD 1E E6 1C 25 00000050h B2 60 55 07 4B 36 FC E1 ED B1 7C 67 13 43 F7 3C 00000060hB1 33 0C F2 79 5B AA 26 7C 2A 4F E9 7C 99 05 13 dvbbs.mdb //密码为:yemeng.net 00000040hBC 4E DB 6A 89 37 14 D5 F9 FA 8C CF 4F E6 19 27 00000050h E4 60 15 05 0F 36 D1 E3 DF B1 53 65 13 43 EB 3E 00000060hB1 33 10 F0 79 5B B6 24 7C 2A 4A E0 7C 99 05 13 怎么试呢还是异或。取0x42处开始的字节0xDB与空密码文件的0x42处字节异或取0x62处的加密标志与空密码文件0x62处字节异或然后再把取得的两个值相异或 (0xDB^0xBE)^(0x10^0x0C)0x79 嘿嘿。这个值是Ascii的y然后取下一个字节记得隔一个字节取一个 (0x89^0xEC)^(0x10^0x0C)0x79 咦本来这个字节应该是e的怎么变成y了试着不与后面的两个异或值相异或只计算0x89^0xEC0x65 得到e,哈。这下对了。下一个 (0x14^0x65)^(0x10^0C)0x6D 得到m下一个 (0xF9^9C)0x65 得到e注意这里只是这两个数异或。后面的大家可以自己试。 这样就总结出规律来了。 解密时先取出加密文件从文件头开始0x62处的字节与空密码数据库文件第0x62处相异或得到一个加密标志。 再从0x42处开始每隔一个字节取一个字节取得13个加密后的密码字节分别与空密码数据库文件0x42处每隔一个字节取得的13个字节想异或得到13个密码半成品。为什么说是半成品呢因为还要将13个字节的密码每隔一个字节就与加密标志相异或最后得到的13个字节才是真正的密码。当然如果中间有0x0的字节则说明密码位数不够13位。直接show出来就可以了。 另外我发现加密标志会随着时间或机器不同而不同所以也没有万能的不过有一个参照的就可以了。以下代码是我在写这个程序的时候取得的数和我写这篇文章不是一个时间所以数值不一样但最终解密的结果是一样的。大家可以参考一下。 对了还有个重要的就是先得判断数据库的版本我用了个简单的办法取0x14处的字节如果为0就判断为是Access97如果为1就认为是Access2000或2002的。只是目前没有研究出判断2000和2002的办法如果哪位知道的话请指点。 代码 //这里定义的是13个字节作为Access2000异或的源码。与之相对应的加密标志是0x13ccrun特此注明 //当然你可以用这一组 BE EC 65 9C FE 28 2B 8A 6C 7B CD DF 4F 与这一组相对应的加密标志是0x0c //呵呵.程序有些乱希望大家能看的懂。 char PassSource2k[13]{0xa1,0xec,0x7a,0x9c,0xe1,0x28,0x34,0x8a,0x73,0x7b,0xd2,0xdf,0x50}; //Access97的异或源码 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; FileHandleFileOpen(MdbFileName,fmOpenRead); if(FileHandle0) { ShowMessage(文件打开错误); return; } //取得数据库版本 FileSeek(FileHandle,0x14,0); FileRead(FileHandle,Ver,1); //取得加密标志 FileSeek(FileHandle,0x62,0); FileRead(FileHandle,EncrypFlag,1); //读取加密后的密码到缓冲区 FileSeek(FileHandle,0x42,0); FileRead(FileHandle,PassStrTemp,26); FileClose(FileHandle); if(Ver1) { MdbVersionAccess 97; if(int(PassStrTemp[0]^PassSource97[0])0) MdbPassword密码为空!; else { MdbPassword; for(int j0;j13;j) MdbPasswordMdbPasswordchar(PassStrTemp[j]^PassSource97[j]); } } else { MdbVersionAccess 2000 or 2002; MdbPassword; for(int j0;j13;j) { if(j%20) t1char(0x13^EncrypFlag^PassStrTemp[j*2]^PassSource2k[j]); //每隔一个字节就与加密标志相异或。这里的加密标志为0x13 else t1char(PassStrTemp[j*2]^PassSource2k[j]); MdbPasswordMdbPasswordt1; } } if(MdbPassword[1]0x20||MdbPassword[1]0x7e) MdbPassword密码为空; EditMdbFileName-TextMdbFileName; EditMdbPassword-TextMdbPassword; EditMdbVersion-TextMdbVersion; } ccrun原创来自C Builder 研究 http://www.ccrun.com
http://www.lakalapos1.cn/news/18227/

相关文章:

  • 软件下载网站哪个好wordpress图表插件
  • 建设网站接活wordpress3.8 发布模块
  • 南京网站开发个人注册公司网上申请入口网站
  • 网站建设课程实训报告建瓯市建设局网站
  • 百度权重高的网站有哪些品牌设计主要做哪些内容
  • wordpress 站内信插件网上做网站怎么做下拉菜单
  • 网站建设初步规划方案怎么样宣传自己的网站
  • 公司网站建设对公司的重要性一个微信公众号可以做几个网站
  • 漳州建设局网站做刀模网站
  • 免费做产品画册的网站桂阳网站建设
  • 网站建设价格怎么算如何建个人网站流程
  • 网站建设项目规划书目录wordpress 文章 模型
  • 建设银行网站重置密码html5移动端开发
  • 医院网站加快建设方案wordpress的文件夹
  • 企业网站开发语言苏州网站制作推广
  • 网站搭建报价wordpress模版
  • 网站给我做坏了怎么办使用html制作网页
  • 建设网站不会写代码wordpress2019主题
  • 金华网站制作系统企业网站制作方法
  • 网站建设私人接单做外贸网站做成哪种形式好
  • 免费源码分享网站设计素材网站免费大全最新
  • 上海美容论坛网站建设做网站推广如何
  • 电影网站做视频联盟做文件的wordpress
  • wordpress中文站点公司网站建设关键字描述
  • 广州公司网站托管厦门建设
  • 可在哪些网站做链接建设部职业资格注册网站
  • 东昌网站建设网站服务器放置地怎么填写
  • 做学术研究的网站北京做网站公司排
  • 网站建设进度计划表app定制系统开发
  • 哪有培训网站开发乐清市规划局