Nantes Hardware
Connectes toi !

Rejoignez le forum, c’est rapide et facile

Nantes Hardware
Connectes toi !
Nantes Hardware
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -24%
PC Portable Gaming 15.6″ Medion Erazer Deputy ...
Voir le deal
759.99 €
Le Deal du moment : -20%
Pack Gigabyte Ecran PC Gamer 27″ LED M27Q ...
Voir le deal
749 €

Otez les protections des feuilles Excel (toutes versions)

4 participants

Aller en bas

Otez les protections des feuilles Excel (toutes versions) Empty Otez les protections des feuilles Excel (toutes versions)

Message par robin44 Mar 27 Avr 2010 - 11:16

Voici un code source en VB qui permet d'ôter les protections par mot de passe des feuilles Excel. Il fonctionne sur toutes les versions jusqu'à la 2007 !

Réussite de 100%, sans échec. Testé et approuvé par moi-même Very Happy

Code:
Attribute VB_Name = "Deprotection"
'
'Déprotection sans échec du classeur ou de la feuille Excel avec extraction de mot de passe.
'
'Auteur : CHEPAKOIDIR
'
'PRINCIPE :
'Excel ne mémorise pas le mot de passe mais une clé sur 15 bits calculée à partir de ce mot de passe.
'Il y a donc 2^15 = 32768 possibilités de clés (de 0 à 32767) en tout et pour tout (c'est dire la fiabilité !).
'Il existe ainsi des milliards de mots de passe qui donnent la même clé. Ils sont EQUIVALENTS. On peut protéger
'avec un mot de passe et déprotéger avec un équivalent, reprotéger avec un autre équivalent, etc.
'Ceci pour répondre à ceux qui voudraient trouver le "bon" mot de passe. C'est impossible et ça n'a aucune
'importance, si vous voulez pirater un classeur sans que son propriétaire s'en rende compte (c'est pas bien ça),
'déprotégez-le puis reprotégez-le avec le mot de passe équivalent trouvé, il n'y verra que du feu.
'
'CALCUL DE LA CLE PAR EXCEL :
'Microsoft n'en fait pas un secret et l'on peut trouver facilement la méthode sur internet.
'On applique à chaque caractère du mot de passe une rotation à gauche sur 15 bits. Le premier caractère tourne
'de 1 bit, le deuxième caractère tourne de 2 bits, etc. Comme c'est une rotation sur 15 bits, le 15ème caractère
'tourne de 0 bits, le 16ème tourne de 1 bit et on recommence par tranche de 15 ...
'Tous les résultats des rotations sont ensuite combinés avec des Ou Exclusifs (XOR pour les prétentieux).
'Puis on fait encore un ou exclusif entre le résultat final et la longueur du mot de passe.
'Enfin, on fait un dernier ou exclusif avec la constante CE4Bh. Notez que les ou exclusifs sont commutatifs.
'La clé ainsi calculée est stockée dans l'enregistrement numéro 13h du stream de la feuille ou du classeur.
'Par exemple, le mot de passe "toto" donne la clé CA4Bh. Le mot de passe "CCCBBBBBBCBBBBC" donne la même.
'
'ALGORITHME :
'Cette macro utilise 15 boucles imbriquées de deux valeurs. Peu importe les valeurs, elles doivent juste être deux
'valeurs CONSECUTIVES et IDENTIQUES pour toutes les boucles (pour assurer que les 32768 possibilités soient
'couvertes). Attention, la première valeur doit être PAIRE. Ces deux valeurs doivent aussi être les codes ASCII de
'caractères acceptés par Excel dans les mots de passe.
'Exemples : "0" et "1" ou "B" et "C" ou "x" et "y" mais pas "A" et "B" (codes 65 et 66, le premier est impair).
'Le bit de poids faible de chaque variable de boucle correspond ainsi à 1 bit de la clé (0 ou 1 = 2 valeurs). Les
'autres bits des variables sont sans importance puisqu'ils sont constants et l'on est sûr de parcourir les 32768
'possibilités mais pas forcément dans l'ordre, ce qui n'a aucune importance.
'A chaque tour, les 15 caractères sont concaténés pour former le mot de passe à essayer et on boucle jusqu'à
'trouver celui qui marche.
'Sur un pentium à 2 GHz normalement constitué, il faut un peu plus d'une minute dans le pire des cas pour faire
'sauter une protection.
'
'AUTRE METHODE :
'Il est possible de récupérer la clé de la feuille ou du classeur dans le fichier Excel (voir doc microsoft) et de calculer
'directement un mot de passe équivalent. Dans ce cas, il faut 2 secondes.
'Au boulot !!!
'
'ATTENTION, la feuille ou le classeur à déprotéger doivent être actifs au lancement de la macro
'et il vaut mieux désactiver ses macros.
Sub Deproteger()
    Dim A As Byte, B As Byte, C As Byte, D As Byte, E As Byte
    Dim F As Byte, G As Byte, H As Byte, I As Byte, J As Byte
    Dim K As Byte, L As Byte, M As Byte, N As Byte, O As Byte
    Dim Reponse As Byte, Temps As Variant
    Dim Cible As Object, Passe As String
   
'  Demande ce qu'il faut déprotéger.
    Reponse = MsgBox("Voulez-vous déprotéger le classeur actif ?" & vbCrLf & _
    "Si vous répondez non, c'est la feuille active qui sera déprotégée.  ", _
      vbYesNoCancel, "Déprotectionnateur")
                                       
    On Error Resume Next
'  Teste ce qu'il faut déprotéger.
    Select Case Reponse
        Case vbYes
'          Définit le classeur actif comme cible à déprotéger.
            Set Cible = ActiveWorkbook
'          Teste si le classeur est protégé.
            If Not (Cible.ProtectStructure Or Cible.ProtectWindows) Then
                MsgBox "Le classeur actif n'est pas protégé.  " & vbCrLf & _
                vbCrLf & "Andouille !", vbOKOnly, "Déprotectionnateur"
                Exit Sub
            End If
'          Teste si le classeur est protégé sans mot de passe.
            Err.Clear
            Cible.Unprotect vbNullString
            If Err = 0 Then
                MsgBox "La protection du classeur actif a été supprimée.  " _
            & vbCrLf & "Il n'y avait pas de mot de passe. Petit rigolo !",  _
              vbOKOnly, "Déprotectionnateur"
                Exit Sub
            End If
        Case vbNo
'          Définit la feuille active comme cible à déprotéger.
            Set Cible = ActiveSheet
'          Teste si la feuille est protégée (on ne teste pas UserInterfaceOnly qui ne peut être positionné que par macro
'          et n'est pas enregistré avec le classeur).
            If Not (Cible.ProtectContents Or Cible.ProtectDrawingObjects Or _
            Cible.ProtectScenarios) Then
                MsgBox "La feuille active n'est pas protégée.  " & vbCrLf & _
                vbCrLf & "Patate !", vbOKOnly, "Déprotectionnateur"
                Exit Sub
            End If
'          Teste si la feuille est protégée sans mot de passe.
            Err.Clear
            Cible.Unprotect vbNullString
            If Err = 0 Then
              MsgBox "La protection de la feuille active a été supprimée.  " _
            & vbCrLf & "Il n'y avait pas de mot de passe. Quelle burne !",  _
              vbOKOnly, "Déprotectionnateur"
              Exit Sub
            End If
        Case Else
'          Annulation demandée par l'utilisateur.
            MsgBox String(14, " ") & "Ciao !", vbOKOnly, "Déprotectionnateur"
            Exit Sub
    End Select
       
'  Note l'instant de départ.
    Temps = Timer
'  Boucles de calcul des mots de passe. On utilise ici les codes ascii des caractères "0" et "1".
    For A = 48 To 49
    For B = 48 To 49
      For C = 48 To 49
      For D = 48 To 49
        For E = 48 To 49
        For F = 48 To 49
          For G = 48 To 49
          For H = 48 To 49
            For I = 48 To 49
            For J = 48 To 49
              For K = 48 To 49
              For L = 48 To 49
                For M = 48 To 49
                For N = 48 To 49
                  For O = 48 To 49
'                      Calcule le mot de passe.
                        Passe = Chr(A) & Chr(B) & Chr(C) & Chr(D) & Chr(E) & _
                                Chr(F) & Chr(G) & Chr(H) & Chr(I) & Chr(J) & _
                                Chr(K) & Chr(L) & Chr(M) & Chr(N) & Chr(O)
'                      Essaie de déprotéger la cible.
                        Err.Clear
                        Cible.Unprotect Passe
'                      Teste si la cible est bien déprotégé.
                        If Err = 0 Then
'                          Si oui, affiche le mot de passe et sort.
                            MsgBox "La protection a été supprimée en " & _
                            Timer - Temps & " secondes.  " & vbCrLf &  _
                            "Le mot de passe équivalent trouvé est :" & _
                            vbCrLf & vbCrLf & String(28, " ") & Passe, _
                            vbOKOnly, "Déprotectionnateur"
                            Exit Sub
                        End If
                  Next
                Next
                Next
              Next
              Next
            Next
            Next
          Next
          Next
        Next
        Next
      Next
      Next
    Next
    Next
'  Message impossible à atteindre.
    MsgBox "Mot de passe introuvable." & vbCrLf & vbCrLf & _
            "C'est pas normal !!!", vbOKOnly, "Déprotectionnateur"
   
End Sub

(source: http://www.vbfrance.com/codes/OTER-PROTECTION-FEUILLES-CLASSEUR-EXCEL-METHODE-SANS-ECHEC_36857.aspx)

EDIT Sioban : Correction d'un doublon dans la section [Code]
robin44
robin44
Modérateur
Modérateur

Nombre de messages : 6577
Localisation : Missillac

Revenir en haut Aller en bas

Otez les protections des feuilles Excel (toutes versions) Empty Re: Otez les protections des feuilles Excel (toutes versions)

Message par Freyja Mar 27 Avr 2010 - 11:24

Sympa ça.

Je me demande si c'est le même genre de protection sur Word.

Quoique cela ne concerne que la protection des feuilles et non pas de l'ouverture.

Pour les PDF, il y a aussi un gros distinguo entre protection en écriture et protection en lecture
Freyja
Freyja
Coadmin
Coadmin

Nombre de messages : 21093
Localisation : Perdue dans les genres

Revenir en haut Aller en bas

Otez les protections des feuilles Excel (toutes versions) Empty Re: Otez les protections des feuilles Excel (toutes versions)

Message par Mimi Mar 27 Avr 2010 - 12:47

moi j'utilise Passware Password Recovery pour :

Access
Word
Excel


Dernière édition par Mimi le Mer 28 Avr 2010 - 10:39, édité 1 fois
Mimi
Mimi
NHFR All Stars
NHFR All Stars

Nombre de messages : 10047
Localisation : Rezé

Revenir en haut Aller en bas

Otez les protections des feuilles Excel (toutes versions) Empty Re: Otez les protections des feuilles Excel (toutes versions)

Message par Axragide Mar 27 Avr 2010 - 12:55

pour...... suspense!!! Otez les protections des feuilles Excel (toutes versions) 159134
avatar
Axragide
Gold Member
Gold Member

Nombre de messages : 909
Localisation : loin de nantes!

Revenir en haut Aller en bas

Otez les protections des feuilles Excel (toutes versions) Empty Re: Otez les protections des feuilles Excel (toutes versions)

Message par Freyja Mar 27 Avr 2010 - 13:43

En plus c'est payant !!!

A moins que Very Happy
Freyja
Freyja
Coadmin
Coadmin

Nombre de messages : 21093
Localisation : Perdue dans les genres

Revenir en haut Aller en bas

Otez les protections des feuilles Excel (toutes versions) Empty Re: Otez les protections des feuilles Excel (toutes versions)

Message par Mimi Mer 28 Avr 2010 - 10:39

C'est payant ?
ah tiens..
Mimi
Mimi
NHFR All Stars
NHFR All Stars

Nombre de messages : 10047
Localisation : Rezé

Revenir en haut Aller en bas

Otez les protections des feuilles Excel (toutes versions) Empty Re: Otez les protections des feuilles Excel (toutes versions)

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum