打印本文 打印本文 关闭窗口 关闭窗口
开发手记(四)——运用VB实战破解ACCESS密码
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1806  更新时间:2009/4/23 15:37:19  文章录入:mintao  责任编辑:mintao

    ACCESS与EXCEL都是OFFICE套件产品,但他们的加密方式完全不同。EXCEL利用的是DES加密技术,而ACCESS只是简单运用异或运算修改头文件中的若干位来达到加密的目的。

     异或运算特性:一数经两次异或可以回到原值,特性举例:(A)XOR(B)=(C)同时(C)XOR(B)=(A),同理可以推出(C)XOR(A)=(B)。A代表ACCESS头文件中的若干位,B代表用户密码,C为经过加密的头文件的若干位的值。我们可以用ultraedit或VC以二进制方式打开原始ACCESS,记录下相关头文件的值,再打开加密后的ACCESS记录下相关头文件的值,两者再异或结果就是ACCESS的密码了。明白了原理后破解ACCESS的密码就很容易了。ACCESS在不同的版本中它的加密位也是不同的:ACCESS97的最大密码长度为13位,加密位是从头文件的67位开始至79位结束,未加密的这13位十六进制值为"86,FB,EC,37,5D,44,9C,FA,C6,5E,28,E6,13";ACCESS2000的最大密码长度为20位,加密位也是从头文件的67位开始至106位结束,未加密的这40位十六进制值为“20 6D EC 37 FB D2 9C FA 60 C8 28 E6 B5 20 8A 60 F2 02 7B 36 53 E4 DF B1 D1 62 13 43 69 39 B1 33 92 F7 79 5B 34 23 7C 2A ”,ACCESS2000采用的是40位中的低字节,如前两位二进制值为‘20 7D’,那么它的加密位为‘20’位。

  解密最直接的方法是用原始头文件的相关位覆盖加密文件的相关位;也可以得用国外有名的免费软件ACCKEY,它只有361KB;但我们更愿意自己编写一个破解程序达到目的,这样更有成就感。

‘*****ShowPassWord.vbp----破解ACCESS密码*****

‘************(c)mi6236,2005,vb6.0  win2k*************

Option Explicit

Private Sub ShowPassWord_Click()

    Dim password As String

    Dim temp As Byte

    Dim source97(12) As Byte

    Dim source2000(39) As Byte

    Dim i As Integer

    ''''**********************************************************

    ''''将未加密ACCSEE97中的67-79位的值并赋给数组source97()

    ''''**********************************************************

    source97(0) = &H86

    source97(1) = &HFB

    source97(2) = &HEC

    source97(3) = &H37

    source97(4) = &H5D

    source97(5) = &H44

    source97(6) = &H9C

    source97(7) = &HFA

    source97(8) = &HC6

    source97(9) = &H5E

    source97(10) = &H28

    source97(11) = &HE6

    source97(12) = &H13

    ''''**********************************************************

    ''''将未加密ACCSEE2000中的67-106位的值并赋给数组source2000()

    ''''**********************************************************

    source2000(0) = &H20

    source2000(1) = &H6D

    source2000(2) = &HEC

    source2000(3) = &H37

    source2000(4) = &HFB

    source2000(5) = &HD2

    source2000(6) = &H9C

    source2000(7) = &HFA

    source2000(8) = &H60

    source2000(9) = &HC8

    source2000(10) = &H28

    source2000(11) = &HE6

    source2000(12) = &HB5

    source2000(13) = &H20

    source2000(14) = &H8A

    source2000(15) = &H60

    source2000(16) = &HF2

    source2000(17) = &H2

    source2000(18) = &H7B

    source2000(19) = &H36

    source2000(20) = &H53

    source2000(21) = &HE4

    source2000(22) = &HDF

    source2000(23) = &HB1

    source2000(24) = &HD1

    source2000(25) = &H62

    source2000(26) = &H13

    source2000(27) = &H43

    source2000(28) = &H69

    source2000(29) = &H39

    source2000(30) = &HB1

    source2000(31) = &H33

    source2000(32) = &H92

    source2000(33) = &HF7

    source2000(34) = &H79

    source2000(35) = &H5B

    source2000(36) = &H34

    source2000(37) = &H23

    source2000(38) = &H7C

    source2000(39) = &H2A

    ''''读取命令对话框中所选的文件

    CommonDialog1.ShowOpen

    CommonDialog1.DialogTitle = "打开ACCESS数据库文件"

[1] [2]  下一页

打印本文 打印本文 关闭窗口 关闭窗口