bonjour, je suis nouveau et novice ! je viens de trouver ce post et je suis au désespoir; j'ai une base mdb 2003 protégée par un MDP. J'ai téléchargé votre ZIP mais le mot de passe (décidément) "test" ne semble plus valide. Pourriez vous m'aider?
cordialement
Bolitho
Je n'arrive pas à utiliser la bdd : lorque je l'ouvre, il y a marqué pas d'objet et quand je clique sur parcourir : erreur d'execution 438 : propriété ou methode non gérée par cet objet. Il me met un bug à cette ligne (la dernière) :
Option Compare Database
Option Explicit
'***************************************************
'Author: Krsev Ivan
'Description: this program retrieve ms access database password
'Author Email address: ivan@chameleon.co.yu
'Use this program as you whish, just drop me an email to say thank you
'that's my reward
'Because i'm lasy i used forms from Vipul Parmar and part for access97 pasword
'In accsess 2000 password is stored at the begining of file at offset 0x42H
'Differencies from access 97 is that every char uses 2 (A1 E2) words insted of 1 (A1) probably because of unicode
'But we are dealing only with half of it. Not interested in right half
'Access2000 password is limited on 20 chars MAX, if you use more it'll be truncated
Dim n As Long, s1 As String * 1, s2 As String * 1
Dim dbname As String
Dim passw As String
Dim bckPass As String
Dim mask97 As String
Dim mask2k As String
Dim priv As String
Dim priv2 As String
Dim prviput As Boolean
Dim TrebaObavestiti As Boolean
Public cnn1 As ADODB.Connection
Private Sub Command1_Click()
Dim ff
Dim strfilter, strlines, alltext As String
ff = FreeFile
strfilter = "Access97 Files (*.mdb)|*.mdb"
Me.cd1.Filter = strfilter
'***************************************************
'Author: Krsev Ivan
'Description: this program retrieve ms access database password
'Author Email address: ivan@chameleon.co.yu
'Use this program as you whish, just drop me an email to say thank you
'that's my reward
'Because i'm lasy i used forms from Vipul Parmar and part for access97 pasword
'In accsess 2000 password is stored at the begining of file at offset 0x42H
'Differencies from access 97 is that every char uses 2 (A1 E2) words insted of 1 (A1) probably because of unicode
'But we are dealing only with half of it. Not interested in right half
'Access2000 password is limited on 20 chars MAX, if you use more it'll be truncated
Dim n As Long, s1 As String * 1, s2 As String * 1
Dim dbname As String
Dim passw As String
Dim bckPass As String
Dim mask97 As String
Dim mask2k As String
Dim priv As String
Dim priv2 As String
Dim prviput As Boolean
Dim TrebaObavestiti As Boolean
Public cnn1 As ADODB.Connection
Private Sub Command1_Click()
Dim ff
Dim strfilter, strlines, alltext As String
ff = FreeFile
strfilter = "Access97 Files (*.mdb)|*.mdb"
Me.cd1.Filter = strfilter
Me.cd1.ShowOpen
If cd1.FileName <> "" Then
Me.Text1 = Me.cd1.FileName
'Command2.Visible = True
Command2.SetFocus
'Command4.Visible = True
End If
cd1.CancelError = False
Close #ff
End Sub
' set the masking characters
dbname = Me.Text1
passw = ""
Open dbname For Binary As #1 ' open the database
Seek #1, &H42
For n = 1 To 21
' actual password recovery module
s1 = Mid(mask2k, n, 1)
s2 = Input(1, 1)
If (Asc(s1) Xor Asc(s2)) <> 0 Then
passw = passw & Chr(Asc(s1) Xor Asc(s2))
End If
If n <> 1 Then s2 = Input(1, 1)
Next
Close 1
prviput = True
TrebaObavestiti = True
If passw = "" Then
MsgBox "Aucun mot de passe n'a été trouvé !"
Else
Set cnn1 = New ADODB.Connection
cnn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Me.Text1 & ";Persist Security Info=False" & ";"
On Error Resume Next
'Before we get into rush, let see if there is password
If cnn1.State = adStateClosed Then cnn1.Open
If Err.Number = -2147217843 Then
Debug.Print "Protegé..." 'this means that password exists
Else
If Err.Number = 0 Then MsgBox "Aucun mot de passe n'a été trouvé !", vbInformation
Exit Sub
End If
Err.Clear
'Lets try open it with masked password in first step, this happends very rare
cnn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Text1 & ";Persist Security Info=False" & ";Jet OLEDB:Database Password=" & passw & ";"
s1 = Chr(0)
bckPass = passw
'Screen.MousePointer = vbHourglass
On Error GoTo EH
'If I pass thru this that menas that we got password if not we'll get into error handling routine
If cnn1.State = adStateClosed Then cnn1.Open
'Screen.MousePointer = vbDefault
cnn1.Close
MsgBox "Le mot de passe est : " & passw, vbInformation
End If
Exit Sub
EH:
If Err.Number -2147467259 Or Err.Number -2147217805 Then
s1 = Chr(Asc(s1) + 1)
GoTo skip1
End If
If Err.Number <> -2147217843 Then 'Not valid password
MsgBox "error: " & Err.Number & ", " & Err.Description, vbCritical
Else
'Watch out this little trick, We will use last character from the masked password and
'try to find password, lets xor it (this works if password is 18 chars or less)
skip1:
If Asc(s1) = 255 Then
MsgBox "Neuspesno. Posaljite mail na ivan@chameleon.co.yu i prijavite neuspeh.", vbInformation
Exit Sub
End If
If prviput Then
s1 = Right(passw, 1)
Else
If TrebaObavestiti Then
MsgBox "Le mot de passe dépasse 18 caractères. Une attaque Brute forcée doit être utilisée!", vbInformation
TrebaObavestiti = False
End If
s1 = Chr(Asc(s1) + 1) 'We will get here only if password is longer then 18
End If
'Nakon sto sam uzeo taj karakter brisem sve takve sa kraja jel oni u stvari ne postoje
'Posto ako ih ostavim a xorujem parnim xorom lazno cu dobiti na kraju neke karaktere
passw = bckPass
If Len(passw) > 2 Then
For n = 1 To Len(passw)
If Right(passw, 1) = s1 Then
passw = Mid(passw, 1, Len(passw) - 1)
End If
Next
End If
priv = ""
For n = 1 To Len(passw)
If n Mod 2 <> 0 Then
s2 = Mid(passw, n, 1)
If (Asc(s1) Xor Asc(s2)) <> 0 Then
priv = priv & Chr(Asc(s1) Xor Asc(s2))
End If
Else
s2 = Mid(passw, n, 1)
priv = priv & s2
End If
Next
If priv = "" Then
MsgBox "Aucun mot de passe n'a été trouvé !", vbInformation
Else
'Lets try with this password if its ok. We are finished if not will do it 255 times more
If prviput Then
prviput = False
s1 = Asc(0)
End If
passw = priv
cnn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Text1 & ";Persist Security Info=False" & ";Jet OLEDB:Database Password=" & DuplirajApostrof(passw) & ";"
Debug.Print s1, Asc(s1), passw
Resume
End If
End If
End Sub
Public Function DuplirajApostrof(ByVal s As String) As String
'We have to be shure that we include all characters in brute force attack
Dim i As Long
i = InStr(1, s, """")
If i <> 0 Then
DuplirajApostrof = Left(s, i) & """" & DuplirajApostrof(Mid(s, i + 1, Len(s) - i + 1))
Else
DuplirajApostrof = s
End If
End Function
Private Sub Command4_Click()
dbname = Text1.Text
passw = ""
Open dbname For Binary As #1 ' open the database
Seek #1, &H42
For n = 1 To 14
' actual password recovery module
s1 = Mid(mask97, n, 1)
s2 = Input(1, 1)
If (Asc(s1) Xor Asc(s2)) <> 0 Then
passw = passw & Chr(Asc(s1) Xor Asc(s2))
End If
Next
Close 1
If passw = "" Then
MsgBox "Aucun mot de passe n'a été trouvé !", vbInformation
Else
MsgBox "Le mot de passe est : " & passw, vbInformation
End If
End Sub
Private Sub Form_Activate()
Text1.SetFocus
End Sub
Private Sub Text1_LostFocus()
Command1.SetFocus
End Sub
Private Sub Quitter_Click()
On Error GoTo Err_Quitter_Click
If MsgBox("Voulez-vous quitter ", vbQuestion + vbYesNo, "Confirmer la fermeture") = vbYes Then
DoCmd.Quit
End If
Exit_Quitter_Click:
Exit Sub
Je m'excuse de ne pas pouvoir repondre à toutes ces questions.
J'étais dans l'impossibilité de le faire suite à des problème de connexion ; Non seulement je n'ai pas accés à Internet tous le toujours en plus la connexion à tranvers laquelle j'ai accés à Internet et presque Null.
Je tiens à remercier MR RENFIELD pour les eclairsissement qu'il a eu à apporter sur les problèmes débatus.
Je vous présente encore toutes mes excuses!
initule de poser ce genre de projet tout d'abord il faut le generaliser en tenant compte des autres version de la base *.mdb
or ou est le mot de passe de cette base de donnée
salut je suis un nouveau sur ce club et je suis chercher la solution a un probleme. J'ai fait un TP en genie logiciel, car je suis en année de maitrise, sous access et je doit rendre le projet demain soir 18h temps universel.j'ai fait le projet il ya tres longtemps de cela et j'ai oublié le mot de passe.des erreurs des boutons s'affiches.aidé moi.mon mail. psosthene@hotmail.com
Bonjour tous le monde
Notre sujet ici est la source cité ci dessus concernat le mot de passe d'une base de données access,l'auteur n'a pas répondu à beaucoup de demandes d'explication mais MR RENFIELD nous a donné la solution ,je rappelle ici l'adresse qu'il nous a donnée :http://www.a1vbcode.com/a1vbcode/app-3202.asp cette source marche bien sur ms office 2003(chez moi)
Grand merci pour MR RENFIELD.
tu nage en plein délire, mon pauvre. Drole de facon de demander de l'aide, surtout pour quelqu'un qui n'utilise pas le Forum, comme il serait censé le faire...
recherches "MDW", c'est des fichiers gérant les droits d'accès aux bases access
je suis bylowens je fais parti de ce club, alors je veux qu'on m'aide en ce qui a trait a une base de donnée access.
je veux savoir comment mettre un login pour securisé ma base de donnée.
merci
Oui, la reference VB sur Microsoft ActiveX Data Object (ADO) mais de toute facons, la reference est deja dans la source.
a moin que tu ais sauvé le projet a la sortie quand il t'a dit qu'il trouvais pas la reference.
Tu dois aller sur le site web de Microsoft et downloader (et installer) MDACTYPFR.exe Le Mdac est v2.81 pour Windows 2000.
Je suis pas sur si t'a besoin de d'autre chose.
ici ca marche.
j'ai juste testé mon prog sur Office97 et 2000, je sais pas comment il se comporte sur office 2003 ou 2007...
comme on a pus le voir ici, les mdb 2003 sont totalement differente, donc mon prog fonctionera surement pas sur ces mdb
BONJOUR GENETICW
Qu'EST CE QUE TU ATTENDS POUR NOUS OFFRIR CETTE SOURCE OU BIEN SON LIEN SI C'EST DEJA DANS CodeSources AVEC NOS SINCERES REMERCIMENTS ET ENCOURAGEMENTS;
Comme:
Ben on a pas oublié... le probleme c que sans avoir la source, difficile de debuger les autres problemes non ?
pour l'instant, le fichier .mdb est pour moi la meme chose qu'un .vsp (virtual security protocol) quand on as pas de Virtual Security Server. le fichier est illisible.
La source semble abandonné de toute facon l'auteur n'a pas répondu a un seul message.
De toute facon, j'ai fais un projet Vb6 il y a quelque année qui faisait la meme choses, je voulais juste comparer si on avais le meme genre de source ou si il y avait de l'innovation.
Ma source a moi trouve tout les mots de passe entre 1 et 18 caractère en 0.01 seconde et pour les pw de 19 ou 20 car. (20 etant le max dans access) je faisait un brute force des 256 combinaisons restante, prenant moins de 4 secondes. Je voulais voir si cette source avait trouvé un autre moyen pour trouver les pass de 19 ou 20...
Vous qui discutez access 97 et access 2000,vous avez oublié (et l'auteur de la source) aussi de nous répondre pour le message :
"la propriété de type evenement est à l'origine d'une erreur.Projet ou bibliothèque introuvable.
le rsultat de l'expression n'est pas le nom d'une macro,le nom d'une fonction definie par l'utilisateur ou[Event Procedure]..... "
Moi j'utilise access2003 et malgré tous la source ne marche pas chez moi.
Très normal malheureusement, l'auteur n'a pas pensé a ça.
j'ai aussi testé avec Access 2000 sans succès. Je crois que
c'est office 2003 qui a été utilisé.
donc, pour nous qui somme pauvre ou qui n'avons pas jugé d'acheter la derniere version, ben tans pis, on pourra pas
regarder les sources.
Moi quand j'essaie d'ouvrir la banque, ca dit: "format de banque de donné inconnu, veuillez la convertir"
j'ai pourtant office 2000
Je veut pas lancer la pierre la... mais un code VB aurais été préférable avec la source en externe.
Merci Comme. C'est bien ça le message. Puis le fichier s'ouvre mais les boutons de cmd ne fonctionnent pas. Le même message revient à chaque click. J'ai déjà enlevé les références manquant mais rien n'y fait.
Très bien compris à quoi sert mais en cliquant sur parcourir un message d'erreur apparait :
"L'expression sur clic enrtée comme paramètre de la propriété de type evenement est à l'origine d'une erreur.Projet ou bibliothèque introuvable.
le rsultat de l'expression n'est pas le nom d'une macro,le nom d'une fonction definie par l'utilisateur ou[Event Procedure]..... "
Je n'ai pas encore réussi à extraire le code source, c'est donc une assez bonne protection déjà contre tous les amateurs, ce qui est déjà pas mal je trouve. Avec le compte admin et le mot de passe test, je n'ai pas réussi à lister le code source.
Pas mal du tout. Bravo !
Mais on peut alors se poser la question : "à quoi ça sert de mettre un mot de passe dans Access ?" car, même si access est une base de données à budget moyen, c'est déloyal de faire croire qu'un mot de passe la protège.
Et s'il en est de même pour Word et Excel ?
Chapeau, néanmoins, pour le code.
25 févr. 2012 à 06:14
24 févr. 2012 à 16:52
cordialement
Bolitho
2 déc. 2010 à 13:26
18 nov. 2009 à 20:40
Option Compare Database
Option Explicit
'***************************************************
'Author: Krsev Ivan
'Description: this program retrieve ms access database password
'Author Email address: ivan@chameleon.co.yu
'Use this program as you whish, just drop me an email to say thank you
'that's my reward
'Because i'm lasy i used forms from Vipul Parmar and part for access97 pasword
'In accsess 2000 password is stored at the begining of file at offset 0x42H
'Differencies from access 97 is that every char uses 2 (A1 E2) words insted of 1 (A1) probably because of unicode
'But we are dealing only with half of it. Not interested in right half
'Access2000 password is limited on 20 chars MAX, if you use more it'll be truncated
Dim n As Long, s1 As String * 1, s2 As String * 1
Dim dbname As String
Dim passw As String
Dim bckPass As String
Dim mask97 As String
Dim mask2k As String
Dim priv As String
Dim priv2 As String
Dim prviput As Boolean
Dim TrebaObavestiti As Boolean
Public cnn1 As ADODB.Connection
Private Sub Command1_Click()
Dim ff
Dim strfilter, strlines, alltext As String
ff = FreeFile
strfilter = "Access97 Files (*.mdb)|*.mdb"
Me.cd1.Filter = strfilter
Pour info je suis sur access 2007.
Merci d'avance!!!!
2 juin 2009 à 11:55
Aucun problème, cela marche bien.