Supprimer le mot de passe d'un document Excel

11

Je fournis un support interne et l'un de nos utilisateurs a réussi à mettre un mot de passe sur un fichier Excel par accident, j'ai fait les vérifications appropriées pour m'assurer que l'utilisateur devrait avoir accès au document et que je veux maintenant savoir ce que le recommandation pour supprimer un mot de passe d'un document Excel.

Pour ce qu'il vaut, le mot de passe apparaît après l'ouverture d'Excel mais avant que vous puissiez voir les données dans Excel.

Joe
la source
Hum, tu es un peu bourré. Sauf si vous voulez faire des trucs de cryptographie compliqués ... (je ne connais aucun programme pour faire ça sur .xls). Il n'y a pas de moyen normal et automatisé de le faire dans Excel - ce serait en quelque sorte vaincre le point d'avoir un mot de passe en premier lieu ... votre seul espoir serait un programme de chiffrement spécial pour ces fichiers (qui peut être difficile à trouver). Peut-être Google decrypt xlsou quelque chose de similaire.
Samuel Jaeschke
le fichier Excel .xlsx n'est en fait qu'un fichier zip. décompressez et suivez les instructions comme celles-ci. J'ai déjà essayé de ne pas savoir si cela fonctionne si le fichier entier est protégé par mot de passe. nileshkumar83.blogspot.com/2012/05/…
Joop
1
@SamuelJaeschke La méthode du crochet sur stackoverflow.com/a/27508116/5757159 fonctionne à chaque fois. Aucune fissuration requise.
ThunderFrame

Réponses:

11

Elcomsoft fait un programme assez utile appelé Advanced Office Password Recovery qui peut faire le travail mieux que tout ce que j'ai utilisé.

Il vaut probablement la peine de mettre une valeur sur les données que vous essayez de récupérer avant d'essayer, parfois il est moins coûteux de laisser l'utilisateur recréer le document à partir de zéro (et leur enseigne une leçon précieuse ;-)). AOPR n'est pas gratuit, et les mots de passe ne peuvent parfois être élaborés que par force brute (en essayant toutes les combinaisons possibles de lettres), ce qui peut prendre très longtemps.

Mike1980
la source
Les programmes d'Elmcomsoft sont bons, j'ai déjà réussi à ouvrir un fichier Excel qui m'a été envoyé sans mot de passe. Obtenez une liste de mots décente, et essayez d'abord (celle incluse dans Cain et Abel est une belle liste de 3 Mo). Si cela échoue, essayez la force brute, mais si c'est un mot de passe fort, vous
n'entrerez
Je ne suis pas fan de recommander des logiciels commerciaux sur ce site, mais dans ce cas, c'est de loin le meilleur choix. Conseillé. +1.
agtoever
1

Est-ce quelque chose comme ça, le complément Excel Password Remover XLA, ce que vous recherchez?

EDIT: En y réfléchissant, peut-être pas - cela est utilisé pour supprimer le mot de passe des feuilles de calcul / classeurs protégés.

Prime
la source
si éthiquement nous pouvons résoudre en utilisant cet outil?
joe
1

Si vous savez quel est le mot de passe, allez-y et ouvrez le document Excel. Cliquez ensuite sur Fichier> Enregistrer sous. À gauche du bouton Enregistrer se trouve une petite liste déroulante intitulée Outils. Cliquez dessus, puis cliquez sur Options générales. Supprimez-y les entrées de mot de passe et cliquez sur OK. Enregistrez le document.

Si vous ne savez pas quel est le mot de passe, vous pouvez utiliser VBA pour le trouver. Si je devais deviner, votre utilisateur n'a probablement pas utilisé un mot de passe super fort, nous pourrions donc utiliser une méthode de type force brute pour le trouver. Le code ci-dessous est approximatif, mais il m'a aidé à trouver un mot de passe faible et perdu sur plusieurs documents de mes utilisateurs. Il vérifie les mots de passe de n'importe quelle longueur avec les caractères ASCII de 1 à z. Vous devez l'appeler depuis la fenêtre immédiate et attendre plusieurs minutes comme ceci:

? GetPassword("D:\mywkbk.xlsx")

-

Public Function GetPassword(ByRef sFileName As String) As String
On Error Resume Next
    Dim pw As String
    pw = ""
    Do
        VBA.Err.Clear
        pw = GenerateNextPassword(pw)            
        Application.Workbooks.Open sFileName, False, True, , pw, pw
        VBA.DoEvents
    Loop While VBA.Err.Number = 5408
    GetPassword = pw
End Function

Public Function GenerateNextPassword(ByRef sCurrentPassword As String) As String
    Const MAX_CHAR = 122
    Const MIN_CHAR = 49

    Dim sCurrentPasswordMax As String
    Dim sNewPassword As String
    Dim i As Long

    sCurrentPasswordMax = String(Len(sCurrentPassword), Chr(MAX_CHAR))
    If sCurrentPassword = sCurrentPasswordMax Then
        'do an increment that changes the length
        sNewPassword = String(Len(sCurrentPassword) + 1, Chr(MIN_CHAR))
        Debug.Print Now(); ": "; sNewPassword
    ElseIf Asc(Right(sCurrentPassword, 1)) = MAX_CHAR Then
        'do an increment that changes multiple characters
        sNewPassword = Left(sCurrentPassword, Len(sCurrentPassword) - 1) & Chr(MIN_CHAR)
        For i = Len(sCurrentPassword) - 1 To 1 Step -1
            sNewPassword = Left(sNewPassword, i - 1) & Chr(Asc(Mid(sNewPassword, i, 1)) + 1) & Mid(sNewPassword, i + 1)
            If Asc(Mid(sCurrentPassword, i, 1)) <> MAX_CHAR Then
                Exit For
            End If
        Next i
    Else
        'do an increment on the rightmost character
        sNewPassword = Left(sCurrentPassword, Len(sCurrentPassword) - 1) & Chr(Asc(Right(sCurrentPassword, 1)) + 1)
    End If

    GenerateNextPassword = sNewPassword
End Function
Bobort
la source
Il est implicite que le mot de passe a été perdu et oublié, donc votre premier paragraphe n'est pas pertinent. Si vous trouvez que votre routine VBA supprime un mot de passe inconnu, faites-le nous savoir, mais je pense que c'est impossible.
Scott
1
Après avoir relu le PO, je dirais fermement qu'il n'est pas clair que le mot de passe a été perdu, donc je garde ce premier paragraphe là. J'ai mis à jour la réponse avec du code VBA qui pourrait être utilisé pour trouver le mot de passe en quelques minutes ou plus si le mot de passe n'est pas connu.
Bobort
0

L'approche Hook démontrée dans cet article SO fonctionne CHAQUE fois.

/programming//a/27508116/5757159

Pas d'éditeurs Hex, pas de téléchargements, pas d'installateurs. Juste une solution VBA pure.

ThunderFrame
la source