注册 登录
编程论坛 C++ Builder

送大家代码Access 95/97 Password Revealer

haolongo 发布于 2013-01-28 19:21, 1487 次点击
只有本站会员才能查看附件,请 登录
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


 

2 回复
#2
yuccn2013-02-04 12:28
这个是vb的吧
#3
liushihuo2013-02-28 17:51
看起来真像是VB的
1