【发布时间】:2023-04-07 12:40:02
【问题描述】:
我花了很多时间寻找 mdb (Access) 数据库结构的定义,但我没有找到有关密码恢复的任何信息。
我知道 Access 2000 mdb 文件有类似页面,每个页面 4kB,每个页面都有一个类型,第一页是“数据库定义页面”,其中包含(可能)加密数据库密码。
有很多软件可以读取MS Access db密码,所以我认为密码存储在哪里并不是秘密。
在哪里/如何找到访问密码?
【问题讨论】:
标签: ms-access
我花了很多时间寻找 mdb (Access) 数据库结构的定义,但我没有找到有关密码恢复的任何信息。
我知道 Access 2000 mdb 文件有类似页面,每个页面 4kB,每个页面都有一个类型,第一页是“数据库定义页面”,其中包含(可能)加密数据库密码。
有很多软件可以读取MS Access db密码,所以我认为密码存储在哪里并不是秘密。
在哪里/如何找到访问密码?
【问题讨论】:
标签: ms-access
Jet 3:数据库密码在设置后以纯文本形式存储在 MDB 文件头中。
Jet 4: 数据库密码在设置后会使用基于文件创建日期/时间(存储在文件中)的简单 XOR 模式算法进行混淆,然后将其存储在 MDB 文件中标题。
Jet 3 AND 4: MDB 文件头本身被 XOR 模式进一步混淆——尽管这次它是一个恒定的 XOR 流。
ACCDB 文件: 密码不再以经过混淆的纯文本形式存储在文件头中。相反,哈希用于检查用户是否输入了有效密码。哈希是由 RC4 和 SHA-1 算法的组合生成的。
【讨论】:
我的问题是 ULS 限制了对 .mdb 的访问。
此代码项目链接允许我在 .NET 中读取数据库:http://www.codeproject.com/Articles/283626/MsAccess-MdbTools-with-MFC-and-NET
【讨论】:
根据下面提到的网页,这些工具实际上并没有从 MDB 文件中查找密码,而是用可能的密码列表轰炸数据库,直到成功。
引自网页:
这些软件采用暴力破解技术来准确准确地恢复丢失的密码。他们维护一个动态字典,其中存储所有恢复的密码。他们通过搜索此字典然后应用蛮力技术来恢复访问密码。这有助于大大减少密码恢复时间。
【讨论】: