头几天下了个asp版的系统源代码来运行了下,发现系统功能还是很全面的,处于学习的好奇,耍了几天才发现数据库文件被加密了锁起了,asp程序是可以访问的,但是不能直接看出密码的,引用关系转来转去的,我也不想去研究,access数据库不能直接打开....
一般出于这种加密的文件,第一反应就是解密,即破解密码,可是我使用了网上评价非常可观的Access破解工具都没有成功,不是破解失败,而是得到的密码里面含有中文字符,复制过去验证无法通过,报告密码错误,我让asp文件输入密码也是含有中文字符的,复制下来打开同样验证失败,这下我就棘手了...
后来我就想了下,在程序里面修改密码,程序都可以直接打开数据库,那以独占方式就可以修改密码,于是就模拟asp原有的连接方式再加上独占方式(mode=12)
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password="&AscIIPwd(pass_str)&";Data Source="abc.mdb";mode=12"
response.Write("alter database password new_pwd AscIIPwd(pass_str))
response.Write("access数据库密码修改成功!")
这样原数据库文件的密码就被修改,AscIIPwd(pass_str)是旧密码,如果你能破解AscIIPwd(pass_str)而得到原始密码,那就可以不用这样处理了(我这个可能属于特殊情况,在程序中能连接,不能直接打开,仅供参考)