needadvice
Programmer
Is there any way to get past a forgotten VB password?
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Function AccessPassword97(ByVal Filename As String) As String
Dim MaxSize, NextChar, MyChar, secretpos, TempPwd
Dim secret(13)
secret(0) = (&H86)
secret(1) = (&HFB)
secret(2) = (&HEC)
secret(3) = (&H37)
secret(4) = (&H5D)
secret(5) = (&H44)
secret(6) = (&H9C)
secret(7) = (&HFA)
secret(8) = (&HC6)
secret(9) = (&H5E)
secret(10) = (&H28)
secret(11) = (&HE6)
secret(12) = (&H13)
secretpos = 0
Open Filename For Input As #1 ' Open file for input.
For NextChar = 67 To 79 Step 1 'Read in Encrypted Password
Seek #1, NextChar ' Set position.
MyChar = Input(1, #1) ' Read character.
TempPwd = TempPwd & Chr(Asc(MyChar) Xor secret(secretpos)) 'Decrypt using Xor
secretpos = secretpos + 1 'increment pointer
Next NextChar
Close #1 ' Close file.
AccessPassword97 = TempPwd
End Function
Public Function Access2000Password(ByVal Filename As String, Optional bTrimNulls As Boolean = True) As String
' AUTHOR: JTRockville@programmer.net
' TERMS OF USE: Freeware
' This function will return the password of an Access
' 2000 database, and optionally, trim the nulls.
' The parameter Filename should contain the full name and
' location of the database for which you want the password.
Dim iFileNumber As Integer
Dim iFilePosition As Integer
Dim iKeyPosition As Integer
Dim iDecryptKey(13) As Integer
Dim strInputChar As String
Dim strPassword As String
' These 14 values are used to decrypt the value stored
' in the .mdb, in order to produce the password.
' Even though the values are entered in hexadecimal
' format, what is stored in the iDecryptKey variable is
' the ascii value.
iDecryptKey(0) = (&HEF)
iDecryptKey(1) = (&HEC)
iDecryptKey(2) = (&H34)
iDecryptKey(3) = (&H9C)
iDecryptKey(4) = (&HAF)
iDecryptKey(5) = (&H28)
iDecryptKey(6) = (&H7A)
iDecryptKey(7) = (&H8A)
iDecryptKey(8) = (&H3D)
iDecryptKey(9) = (&H7B)
iDecryptKey(10) = (&H9C)
iDecryptKey(11) = (&HDF)
iDecryptKey(12) = (&H1E)
iDecryptKey(13) = (&H13)
iKeyPosition = 0
iFileNumber = FreeFile
Open Filename For Binary Access Read As #iFileNumber ' Open file for input.
' Read every other character stored in positions 67-93
' of the input file.
For iFilePosition = 67 To 93 Step 2 'Read in Encrypted Password
Seek #iFileNumber, iFilePosition ' Set position.
strInputChar = Input(1, #iFileNumber) ' Read character.
' Take each of those 14 characters,
' do an xor bitwise comparison to it's corresponding
' "iDecryptKey" key, and store the resulting character.
' The xor operator accepts and returns ascii values,
' but does the comparison using binary values. So,
' for example:
' The first value to translate is asc(242).
' The first decryption code, iDecryptKey(0), is 134.
' In binary,
' The value to translate: 11110010
' The decryption code is: 10000110
' Xor compares each digit: If they're the same,
' the result is 0, if they're different, the result is 1.
' So the result, in our example, is binary 1110100.
' Xor returns the ascii value, 116, or lower case "t".
strPassword = strPassword & Chr(Asc(strInputChar) Xor iDecryptKey(iKeyPosition)) 'Decrypt using Xor
iKeyPosition = iKeyPosition + 1 'increment pointer
Next iFilePosition
Close #iFileNumber ' Close file.
Access2000Password = IIf(bTrimNulls, Replace(strPassword, Chr(0), ""), strPassword)
End Function