#2
yuccn2013-02-04 12:28
|
只有本站会员才能查看附件,请 登录
Access 95/97 Password Revealer When you set a password in Access 95/97 database, the password is encrypted with simple XOR operation.
The following code snippet shows how you can easily reveal this password:
'Access 95/97 Password Revealer
'Copyright (c) Nir Sofer 2002
'
'Web site: http://nirsoft.
'
'This small utility instantly recovers the database password of
'Microsoft Access files (mdb files)
'It works only with Access 95 or 97.
'
Private Function XorPassword(Bytes As Variant) As String
Dim XorBytes() As Variant
Dim strPassword As String
Dim intIndex As Integer
Dim CurrChar As String * 1
XorBytes = Array(&H86, &HFB, &HEC, &H37, &H5D, &H44, &H9C, &HFA, &HC6, &H5E, &H28, _
&HE6, &H13, &HB6, &H8A, &H60, &H54, &H94)
strPassword = vbNullString
intIndex = 0
Do
'Get a character from the password by doing a XOR with the
'appropriate value in XorBytes array.
CurrChar = Chr$(Bytes(intIndex + &H42) Xor XorBytes(intIndex))
'If we get a Null character, get out of the loop.
If Asc(CurrChar) = 0 Then Exit Do
'Add the password character to the accumulated password string.
strPassword = strPassword & CurrChar
intIndex = intIndex + 1
Loop Until intIndex = 17
XorPassword = strPassword
End Function
Private Function GetAccessPassword(strFilename As String) As String
Dim intFileNum As Integer
Dim Bytes(&H100) As Byte
intFileNum = FreeFile
'Open the Access filename
Open strFilename For Binary As #intFileNum
'Read first 256 bytes
Get #intFileNum, , Bytes
'Get the password from the XorPassword function
GetAccessPassword = XorPassword(Bytes)
Close #intFileNum
End Function
Private Sub cmdBrowse_Click()
On Error GoTo canceled
OpenDialog.Flags = cdlOFNExplorer Or cdlOFNFileMustExist Or cdlOFNHideReadOnly
OpenDialog.ShowOpen
txtFilename.Text = OpenDialog.FileName
Exit Sub
canceled:
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdGetPassword_Click()
Dim strFilename As String
strFilename = Trim$(txtFilename.Text)
If Len(strFilename) = 0 Then
MsgBox "You must select a filename !", vbOKOnly Or vbInformation
ElseIf Len(Dir(strFilename)) = 0 Then
MsgBox "The filename does not exist !", vbOKOnly Or vbInformation
Else
txtPassword.Text = GetAccessPassword(strFilename)
End If
End Sub