Solved

Passward Problem I Need Help Bad !!!!!!!

Posted on 2002-06-19
8
331 Views
Last Modified: 2008-03-06
NEED HELP BAD !!!!!
Two Questions

I have a mdb file that I have password protected now I cannot remember the password, nor find where I put the password I wrote down.
1-Is there any way of getting past this password to reopen my access database in design view ?
2-Is there software availiable for this ?
0
Comment
Question by:mrwebmaster
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 4

Accepted Solution

by:
Nevaar earned 400 total points
ID: 7093864
0
 
LVL 14

Expert Comment

by:mgrattan
ID: 7093964
If this is a database password (and not a user/group password) you can crack the password from another Access database by copying/pasting and running a simple vba function.  Is that what you need?
0
 
LVL 14

Expert Comment

by:mgrattan
ID: 7093976
Here's the function you need if the password is only on the database:

'--------------------------------------------------
'   basDatabasePassword
'
'   Get the database password of a Jet 3.0/3.5 database.
'
'   --------------------------
'   This code is provided for the express purpose of destroying the burgeoning
'   shareware industry of Jet 3.x/3.5x database password crackers. You should
'   keep in mind that it is still quite illegal to break into a database you have
'   no authorization to view. Please don't do anything that would cause me to
'   have less respect for you than for the lifeless souls who try to charge money
'   for code of this nature on a "per database" basis.
'
'   TO USE:
'   1) Create a new module in any VBA host like Access, Excel, or Visual Basic
'   2) Hit <Ctrl+G> to get to the debug window
'   3) Run the following line of code in the debug window (replacing c:\foo.mdb with
'           the full path/name to your database:
'
'               ? StPasswordOfStDatabase("c:\foo.mdb")
'
'   The function will return the Database Password to you.
'
'   --------------------------
'   Sample code to allow you to prove to yourself that the function
'   works (the following code can be run from the debug window).
'   Change the password from 01234567890123456789 to any
'   arbitrary value 1-20 characters in length:
'
'   Set dbe = CreateObject("dao.dbengine.35")
'   Set db = dbe.CreateDatabase("c:\temp35.mdb", ";LANGID=0x0409;CP=1252;COUNTRY=0")
'   db.NewPassword "", "01234567890123456789"
'   db.Close: Set db = Nothing: Set dbe = Nothing
'   Debug.Print StPasswordOfStDatabase("c:\temp35.mdb")
'   --------------------------
'
'   (c) 1998 Trigeminal Software, Inc. All Rights Reserved
'--------------------------------------------------
Option Compare Binary
Option Explicit

Public Function StPasswordOfStDatabase(stDatabase As String) As String
    Dim hFile As Integer
    Dim ich As Integer
    Dim stBuffer As String
    Dim rgbytRaw() As Byte
    Dim rgbytPassword() As Byte
    Dim rgbytNoPassword() As Byte
   
    ' Create the byte array with the 20 bytes that are present when there
    ' is no database password
    rgbytNoPassword = ChrB(134) & ChrB(251) & ChrB(236) & ChrB(55) & ChrB(93) & _
                                ChrB(68) & ChrB(156) & ChrB(250) & ChrB(198) & ChrB(94) & _
                                ChrB(40) & ChrB(230) & ChrB(19) & ChrB(182) & ChrB(138) & _
                                ChrB(96) & ChrB(84) & ChrB(148) & ChrB(123) & ChrB(54)
                               
    ' Grab the 20 bytes from the real file whose password
    ' we are supposed to retrieve
    hFile = FreeFile
    Open stDatabase For Binary As #hFile
    Seek #hFile, 66 + 1
    rgbytRaw = InputB(20, #hFile)
    Close #hFile
   
    ' Enough prep, lets get the password now.
    ReDim rgbytPassword(0 To 19)
    For ich = 0 To 19
        rgbytPassword(ich) = rgbytRaw(ich) Xor rgbytNoPassword(ich)
    Next ich

    ' Add a trailing Null so one will always be found, even if the password is 20
    ' characters. Then grab up to the first null we find and return the password
    stBuffer = StrConv(rgbytPassword, vbUnicode) & vbNullChar
    StPasswordOfStDatabase = Left$(stBuffer, InStr(1, stBuffer, vbNullChar, vbBinaryCompare) - 1)
End Function


0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 4

Expert Comment

by:archery
ID: 7094346
I have exactly the same code as posted by MGrattan as a "standard" module (couldn't remmeber where it came from but obviously is put to good use.

I do also have a very small (zipped) executable which you can run and nominate the database to "crack". Picked it up somewhere on the web some time ago. (The displayed textbox may NOT be big enough to display the complete password so scroll through it.

I could email it to you if you like (email address in profile)
0
 

Author Comment

by:mrwebmaster
ID: 7105216
mgrattan

I have tried running your code from the debug window in MS Access using, ? StPasswordOfStDatabase("c:\foo.mdb")
but substuting the path with the real one and I only get a beep. This had originalley had security level passwards set up in it.
What Next ? I am really stuck.
And yes this is my database I made a long time ago, My backup copy was distroied when I had to reformat my drive.



0
 
LVL 14

Expert Comment

by:mgrattan
ID: 7105360
Well, a "security level password" indicates that you had group/user level security which is different than a "database password".  The VBA function I provided is only for deciphering a database password.  

I think if you check out lostpassword.com, as suggested by Nevaar, you will find a utility that will crack the password on a secured database.  I believe there is a trial version that will give you the first three letters of the password for a particular user.
0
 
LVL 14

Expert Comment

by:mgrattan
ID: 7115028
One more thing; if you have Microsoft Visual Studio it comes with a tool that is used for version control.  You can "check in" your Access database to the version control program and then check it out again; this will usually strip the security for you....
0
 
LVL 14

Expert Comment

by:mgrattan
ID: 7125403
mrwebmaster,

Do you need any further assistance?  Please let us know how things are going with this issue.

Mike.
0

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
This article describes a method of delivering Word templates for use in merging Access data to Word documents, that requires no computer knowledge on the part of the recipient -- the templates are saved in table fields, and are extracted and install…
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question