S
shirong
Unregistered / Unconfirmed
GUEST, unregistred user!
各位擅长数据分析方面的大侠.
我正在写一个读出access数据库密码的软件,经过一番搜索和自己研究,得出了一些结果:
access数据库都是采取用密码(password)对文件头特定部位(密钥)进行异或得出,只要用
密钥对加密后的数据库特定部位进行异或即可求出密钥.
access97的密码为17位,存放在文件头42h开始的17个字节里,只要用
( $86, $FB, $EC, $37,
$5D, $44, $9C, $FA,
$C6, $5E, $28, $E6,$13 );
与之相异或即可得出密码.
access2000的密码与之不同,共有40位,实际只用到奇数位20个数字,经过研究,我发现这20个
数字不能用固定的密钥来解,密钥与mdb数据库创建时间有关,也就是说对于没有加密的数据库
来说,从42h开始的40个字节是根据时间来变化的.
比如今年8月份创建库密钥为
( $e0, $EC, $3b, $9C,
$a0, $28, $75, $8A,
$32, $7B, $93, $DF,
$11, $13, $a9, $B1,
$52, $79, $f4, $7C,$dc);}
而时间的标志则是在72h开始的7个字节中,比如
2002年9月7日, 19:33:36创建的数据库为cf fa ce 80 36 6e 82
2002年9月7日, 19:32:40创建的数据库为36 54 03 9b 36 6e 82
在时间推移过一段时间后密钥就会发生变化,可能是2个月时间左右.
我推测可能是用这7个字节对42h开始的40个字节进行处理得出新的密钥
我打印了几张数据库的头部16进制的表,打算分析出相应的规律,但是有一个月时间,发现自己
确实没办法.以前没有干过类似的活.实在是没有经验,有狗咬刺猬,无从下口的感觉
而且我白天还要上班,没时间分析,发帖子到几个网站上去问,只有看热闹的.我的英文又不好
没办法去老外的新闻组上灌水.
我也下了几个可以解出密码的软件分析,但是实在是看不出什么,因为这几个都是用vb编的
代码跳来跳去,唯一一个用delphi编的,又加了密,没法跟踪.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1264639这个连接也是我发的,如果有人
答出来,分一起给了!
我正在写一个读出access数据库密码的软件,经过一番搜索和自己研究,得出了一些结果:
access数据库都是采取用密码(password)对文件头特定部位(密钥)进行异或得出,只要用
密钥对加密后的数据库特定部位进行异或即可求出密钥.
access97的密码为17位,存放在文件头42h开始的17个字节里,只要用
( $86, $FB, $EC, $37,
$5D, $44, $9C, $FA,
$C6, $5E, $28, $E6,$13 );
与之相异或即可得出密码.
access2000的密码与之不同,共有40位,实际只用到奇数位20个数字,经过研究,我发现这20个
数字不能用固定的密钥来解,密钥与mdb数据库创建时间有关,也就是说对于没有加密的数据库
来说,从42h开始的40个字节是根据时间来变化的.
比如今年8月份创建库密钥为
( $e0, $EC, $3b, $9C,
$a0, $28, $75, $8A,
$32, $7B, $93, $DF,
$11, $13, $a9, $B1,
$52, $79, $f4, $7C,$dc);}
而时间的标志则是在72h开始的7个字节中,比如
2002年9月7日, 19:33:36创建的数据库为cf fa ce 80 36 6e 82
2002年9月7日, 19:32:40创建的数据库为36 54 03 9b 36 6e 82
在时间推移过一段时间后密钥就会发生变化,可能是2个月时间左右.
我推测可能是用这7个字节对42h开始的40个字节进行处理得出新的密钥
我打印了几张数据库的头部16进制的表,打算分析出相应的规律,但是有一个月时间,发现自己
确实没办法.以前没有干过类似的活.实在是没有经验,有狗咬刺猬,无从下口的感觉
而且我白天还要上班,没时间分析,发帖子到几个网站上去问,只有看热闹的.我的英文又不好
没办法去老外的新闻组上灌水.
我也下了几个可以解出密码的软件分析,但是实在是看不出什么,因为这几个都是用vb编的
代码跳来跳去,唯一一个用delphi编的,又加了密,没法跟踪.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1264639这个连接也是我发的,如果有人
答出来,分一起给了!