begin process at 2012 02 17 10:45:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBA

 > ÔTER LA PROTECTION D'UNE FEUILLE GRACE À UN BUG D'EXCEL

ÔTER LA PROTECTION D'UNE FEUILLE GRACE À UN BUG D'EXCEL


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :VBA Classé sous :Excel, Protection, Bug, Ôter, Password Niveau :Débutant Date de création :08/12/2009 Date de mise à jour :15/12/2009 09:57:42 Vu / téléchargé :15 809 / 1 489

Auteur : bigfish_le vrai

Ecrire un message privé
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

On savait à quel point excel est une passoire, mais de là à trouver une telle faille !!!

Et oui, un changement de valeur de la propriété "AllowFormattingCells" éfface purement et simplement le mot de passe de la feuille sur la qu'elle cette propriété est appliquée.

Ceci dit je ne garantis pas que ce bug existe sur toutes les versions d'excel. En tout cas cela fonctionne avec excel2003 sp2 + VBA 6.3

Le classeur téléchargeable ci-dessous est une demo de l'utilisation de ce bug:

-Le premier bouton protège la feuille avec un mot de passe généré aléatoirement.
-Le second utilise le bug

Mise à jour du 14/12/2009

Voici une parade à ce "bug" :

Il se trouve que si lors de la mise en place de la protection, l'argument "DrawingObjects" de la methode "protect" est à false
le bug ne s'applique plus !
En claire: l'option "modifier les objets" doit être cochée.

Attention ceci est une parade à ce "bug" rien de plus !... ce qui veut dire que cela ne protege en rien contre les methodes de recherches de mot de passe!

A+

3ddI7IHd


Source

  • 'code à mettre dans le code de la feuille concernée:
  • Option Explicit
  • '
  • 'Macro Créée par : BigFish_le Vrai (Philippe E)
  • 'le :08-12-2009
  • 'V1.0
  • '
  • Sub Bigfish_3ddI7IHd()
  • 'le "bug" c'est ici !!!
  • 'le fait de changer la valeur de la propriété AllowFormattingCells fait sauter le mot de passe !
  • 'il ne reste plus alors qu'à déprotéger la feuille
  • 'ATTENTION:
  • ' ce bug existe sur excel 2003 sp2 + VBA 6.3, pour les autres versions cela reste à confirmer.
  • With Me
  • .Protect AllowFormattingCells:=Not .Protection.AllowFormattingCells
  • .Unprotect
  • .[A1].Activate
  • End With
  • End Sub
  • 'Le reste dans le fichier
'code à mettre dans le code de la feuille concernée:

Option Explicit
'
'Macro Créée par : BigFish_le Vrai (Philippe E)
'le :08-12-2009
'V1.0
'

Sub Bigfish_3ddI7IHd()
    'le "bug" c'est ici !!!
    'le fait de changer la valeur de la propriété AllowFormattingCells fait sauter le mot de passe !
    'il ne reste plus alors qu'à déprotéger la feuille
    'ATTENTION:
    '   ce bug existe sur excel 2003 sp2 + VBA 6.3, pour les autres versions cela reste à confirmer.
    With Me
        .Protect AllowFormattingCells:=Not .Protection.AllowFormattingCells
        .Unprotect
        .[A1].Activate
    End With
End Sub

'Le reste dans le fichier

 Conclusion

Voici donc un sujet tres politiquement incorrect !

Il serait interressant que les personnes qui essaient de reproduire ce bug sur d'autre version d'excel, que celle cité ci-dessus, nous donne le résultat.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Cracker's bug.xlsTélécharger ce fichier [Réservé aux membres club]46 080 octets

Télécharger le zip


 Historique

14 décembre 2009 10:56:10 :
Ajout d'une parade à ce "bug".
15 décembre 2009 09:57:42 :
Quelques fautes en moins

 Sources du même auteur

Source avec Zip Source avec une capture MANIPULER LES FENETRES ENFANT D'EXCEL
Source avec Zip UTILISER LES PROPRIÉTÉS PERSO D'UN DOCUMENT COMME PARAMETRES...
Source avec Zip Source avec une capture UNE BOITE DE MESSAGE (MSGBOX) QUI SE PREND POUR UN POPUP
Source avec Zip Source avec une capture INFO POINT DE COURBE DE GRAPHIQUE EXCEL, QUI FONCTIONNE COMM...
Source avec Zip Source avec une capture UNE HORLOGE DANS LA BARRE D'OUTIL D'EXCEL, COMME EXEMPLE DE ...

 Sources de la même categorie

Source avec Zip Source avec une capture OUTLOOK ATTACHEMENT SAVER par MoiLafouine
Source avec Zip GESTION PERSONNEL par oudlarbi
Source avec Zip Source avec une capture CALENDRIER EN VBA POUR EXCEL 2010 par nounou94
Source avec Zip Source avec une capture MANIPULER LES FENETRES ENFANT D'EXCEL par bigfish_le vrai
Source avec Zip Source avec une capture COLLECTION ID par Le Pivert

 Sources en rapport avec celle ci

Source avec Zip PROTECTION VBAPROJECT par Le Pivert
Source avec Zip PASSWORD CLASSEUR EXCEL par Le Pivert
Source avec Zip Source avec une capture [VBS] COMMENT CRÉER UN DOSSIER ET LE PROTÉGER PAR MOT DE PAS... par hackoo
Source avec Zip Source avec une capture CONNEXION INTERNET AVEC LOGIN ET MOT DE PASSE À PARTIR D'EXC... par IAORANA
Source avec Zip Source avec une capture FOLDER PROTECTION par hackoo

Commentaires et avis

Commentaire de PCPT le 08/12/2009 15:46:51 administrateur CS

salut,

pas connaisseur du fonctionnement de .protect, mais en effet le résultat est reproductible aussi sous excel 2007

cependant : la protection est logiquement faite par le code vba
du coup la macro n'est pas sensée pouvoir "déprotéger" un autre classeur que celui porteur de la macro, si?

c'est cet exemple là qui serait révélateur d'une faille réelle

Commentaire de bigfish_le vrai le 08/12/2009 16:15:18

Salut PCPT,

je viens de faire le test que tu m'as suggeré:

Resultat ça marche !

Détails du test:

3 fichiers.

- le premier contient des feuilles protégées par mot de passe
- le second contient des feuilles protégées par mot de passe
- le troisieme contient la macro suivante dans un module:

Sub BugTest()
    'Boucle sur toutes les feuilles de touts les classeurs ouvert
    Dim feuille As Worksheet, Classeur As Workbook
    For Each Classeur In Workbooks
        For Each feuille In Classeur.Worksheets
            With feuille
                .Protect AllowFormattingCells:=Not .Protection.AllowFormattingCells
                .Unprotect
            End With
        Next
    Next
End Sub

Voila pas glop !

Commentaire de merlin622 le 09/12/2009 09:47:42 10/10

Joli bug en effet... Reproductible chez moi sur Excel 2003 SP3.

Cela fonctionne même si le classeur est protégé.

Ceci dit il y a longtemps que je n'accorde plus aucune confiance aux fonctions de protection Excel. Il y a trop de macros disponibles sur internet pour cracker ces protections. Mais de là à tomber sur des bugs aussi grossiers...

Commentaire de Alain Proviste le 09/12/2009 11:05:43 administrateur CS

éc½urant




et

bon à savoir

Commentaire de Le Pivert le 09/12/2009 12:02:48 10/10

Bravo, BIGFISH_LEVRAI toujours aussi perspicace. Avec toi Excel a intérêt à bien se tenir!
Bonne continuation dans tes programmes.

Commentaire de JJM78 le 09/12/2009 12:18:22

Cela marche parfaitement sous Excel 2007. Comme quoi Microsoft a un souci constant d'assurer la compatibilité entre ses versions...  :-)

Commentaire de us_30 le 09/12/2009 21:03:53

Voici donc une autre alternative à ma macro de déprotection de feuille Excel. Je parie que le code fonctionne pour toutes les versions, sauf Excel97 !

Pour ma part, je ne cherche plus dans ce domaine, connaissant encore une autre alternative... Si on cherche on trouve... Tout comme rendre les versions d'Office limitées en versions complètes en changeant un mot ! ... un seul... On voit bien que la politique de Microsoft n'est pas d'interdire la diffusion de ces produits... et cela leur réussi ! commercialement parlant... Bill Gates était bien un des plus fortuné du monde...

Amicalement,
Us.

Commentaire de JJM78 le 12/12/2009 00:20:28

Je viens d'essayer d'appliquer ce bug sur une feuille Excel protégée de manière un peu spéciale. Il ne déprotège pas cette feuille.
En même temps cela me permet de présenter une protection indétectable et impossible à contourner, même par des logiciels trouvés sur Internet.

Le but est de tout simplement cacher une feuille de façon parfaite (elle est complètement invisible et ne figure pas dans la liste des feuilles pouvant être déprotégées). En fait, seul VBA est capable de la gérer. Cette feuille pourrait, par exemple, cacher des informations secrètes ou des mots de passe d'autres applications.

La déprotection (qui affiche la feuille cachée), est particulièrement difficile à trouver : il faut entrer un mot de passe (non visible) à un endroit particulier de la feuille (invisible), puis double-cliquer à un autre emplacement lui aussi invisible. En double-cliquant sur ce dernier emplacement, la feuille sera de nouveau rendue invisible.
Par sécurité, cette feuille sera rendue automatiquement invisible à la fois lors de la fermeture du classeur et au moment de son ouverture.
par conséquent rien n'indique la présence d'une feuille totalement invisible et rien n'indique la présence des deux zones de commande.
Dans ces conditions il est quasiment impossible de savoir quoi faire pour rendre cette feuille visible, dont on ne connaît même pas l'existence. À la rigueur, en passant en mode "Création" on pourrait voir les "poignées" de ces deux zones, mais il faudrait encore savoir où chercher et ce qu'elles signifient. Sous Visual Basic, en déprotégeant le code on verrait l'existence de cette feuille cachée, mais c'est tout (je ne sais pas s'il est possible de déprotéger le code VBA sous Excel 2007).
Le fait de devoir effectuer un double clic empêche une éventuelle commande accidentelle. Et de toute façon sans le bon mot de passe (incrackable) il n'est pas possible de l'afficher.
Seule une instruction VBA le pourrait, à condition de déprotéger le code et de l'étudier (le code peut être caché au milieu d'un grand nombre de fonctions et d'instructions).

Ci-joint un classeur au format Excel 97-2003, pour démonstration.
À l'ouverture on voit trois feuilles : Accueil, Feuil1 et Feuil2. Feuil1 est protégée par mot de passe, de façon classique et le bouton "Bug" sur la feuille Accueil permet d'appliquer le bug en question sur ce fil et de la déprotéger.
Mais il existe une autre feuille, nommée "Cachée", qui est invisible. Le mot de passe (toto) est repris sur la feuille Accueil, pour les essais seulement, évidemment.
Les deux zones cachées sont situées par dessus les cellules A4 (contre le bord de la feuille) et B4 (contre la bordure noire verticale). Attention, leur étendue ne correspond pas à celle des cellules (passer en mode Création pour les mettre en évidence).

On commence par cliquer sur la première zone de gauche (au niveau de A4), pour entrer le mot de passe (toto), en invisible. Puis on double-clique sur la deuxième zone (également invisible, au niveau de la fin de B4). Toute saisie de mauvais mot de passe ou simple clic ne produit absolument aucun effet et toute action sur la deuxième zone efface aussitôt le mot de passe saisi (qui était de plus invisible).

Avec le bon mot de passe et le double clic au bon endroit, la feuille nommée "Cachée" devient visible.
Un nouveau double clic sur la deuxième zone la cache de nouveau et il faudra entrer le mot de passe et double cliquer sur la deuxième zone pour la rendre visible encore une fois. À la fermeture et à l'ouverture du classeur, elle sera rendue invisible par défaut.

Le code est très simple : il est basé sur la propiété "xlVeryHidden" accessible en VBA.
Module1 contient la procédure Auto_Open qui cache la feuille au démarrage, ave une gestion du booléen "EstVisible" pour savoir où on en est.
Idem pour la procédure "Auto_Close".

La feuille "Accueil" contient le code testant le contenu de la première zone (TextBox1), pour gérer l'affichage ou non de la feuille "Cachée".

Lea première zone est simplement un TextBox dont les propriétés BackColor, BorderColor et ForeColor sont à blanc, sans bordure et la propriété BackStyle transparente.
La deuxième zone est une simple image blanche insérée, dont les propriétés sont également à blanc et transparente.
Il ne reste plus qu'à déplacer ces zones n'importe où et à s'en souvenir...

Juste un petit problème : comment on joint un fichier Excel à un message ?  :-)

Commentaire de Alain Proviste le 12/12/2009 01:37:33 administrateur CS

il y a du vba et des macros dans ce que tu décris donc tu peux poster une nouvelle source

Commentaire de us_30 le 12/12/2009 12:32:04

Oui JJM78, post une source et on comprendra mieux ta description... puis, on verra... En effet, la propriété 'xlVeryHidden' est encore à étudier plus en détail...
Quant à "je ne sais pas s'il est possible de déprotéger le code VBA sous Excel 2007"... moi je connais la réponse... affirmative! -:);

Amicalement,
Us.

Commentaire de JJM78 le 12/12/2009 18:20:07

C'est exactement ce que je voulais faire, le classeur est tout prêt. Mais nulle part je ne trouve de bouton ou de lien du genre "Joindre un fichier". Comment fait-on ? Pourquoi sur Internet rien n'est jamais simple et évident, en contradiction  avec toutes les règles de programmation ?

Commentaire de PCPT le 12/12/2009 19:03:01 administrateur CS

JJM78 -> peut-être confonds-tu cet espace (commentaire d'une source déposée) et le forum
(bien que nos forums n'acceptent pas non plus les pièces jointes contrairement à d'autres)

Alain Proviste te proposait simplement de, toi aussi, déposer ta source.
et pour ce faire il y a des pas mal de liens à droite à gauche

allez : http://www.vbfrance.com/ajoutcode.aspx

++ :)

Commentaire de jacpapy le 14/12/2009 10:48:58

Bonjour,

J'ai fait un test en protégeant moi-même la feuille
dans ce cas le bouton "déprotection via le bug" ne s'active pas
J'ai donc exécuter la macro "Bigfish_3ddI7IHd", la seule visible
Le résultat est correct, la protection est levée
Je suis en version V2007 sous vista, mais la version du VBA est la même que toi 6.3

jacpapy

Commentaire de bigfish_le vrai le 14/12/2009 11:20:19

je vous ai rajouté une petite parade à ce "bug" (voir la description)

je confirmes la réponse affirmative de US_30, un mot de passe sur le code VBA n'est pas plus une protection que le mot de passe sur une feuille.

Le meilleur moyen que pourrait nous donner MS serait d'ajouter un évenement de déprotection. Mais hélas il n'existe pas, même au niveau de l'application dommage...
Je suis en train travailler sur le sujet et voir si l'on peut détourner un des évènements dispo. pour detecter une tentative de déprotection. mais dans touts les cas il restera toujours le problème du mot de passe sur le code qui comme dit plus haut n'est en rien une protection.

-JJM78, aucun problème pour afficher une feuille cachée même avec xlverihidden via une macro sur un autre classeur et même si elle est protégée.
vas voir ici : http://www.vbfrance.com/codes/ASTUCE-AMELIORER-SECURITE-ACCES-DONNEES-CODE-FICHIER-EXCEL_48448.aspx
je donnes quelques autres astuces methode pour ça.

3ddI7IHd

Commentaire de PWM63 le 14/12/2009 14:49:32 10/10

Reste plus qu'à vérifier si ce bug existe sur ooo :)
et à compter le nombre de jours avant de voir venir le correctif...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Protéger des cellules en écriture sous Excel [ par Falbala ] Je veux protéger des cellules en écriture pour que l'utilisateur ne puisse pas modifier son contenu. J'ai essayé en masquant (Cellule->protection)l Protection d'une feuille de calcul excel comprenant des macros [ par sevfr ] Comment protéger en écriture une feuille de calcul excel comportant plusieurs macros, sans que le message ci-dessous n'apparaisse:" Erreur d'éxécutio protection classeur excel [ par waw ] Je cherche une macro pour cracker la protection d'un classeur excel quand on a pas le mot de passe ouvrir excel avec password [ par Clodius13 ] Bonjour,J'ai besoin d'ouvrir un fichier excel protégé par un password en lecture.j'ai esayé le code suivant mais il ne fonctionne pas. quelqu'un pourr Protection de classeur Excel [ par VUX ] Salut.Je souhaiterais protéger un classeur Excel, mais en désactivant uniquement les fonctions suivantes:Insertion/Déplacement/Suppression de colonnes Protection Feuille Excel [ par bouv ] salut, j'aimerai protéger une feuille Excel contre la modification.Je sais protéger le classeur entier, mais j'aimerai une protection feuille par feui protection feuille excel et macro [ par ploufio ] Bonjour, J'ai actuellement un fichier xls comportant 3 macros de tri et ce document doit être protégé.Or lorsque je le protège et que j'active une mac VBA bug intégrale d'excel [ par Samitch ] Hello,mon problème est le suivant:j'ai écrit une macro en vba sous excel (option explicit) et chaque fois que je l'utilise elle bug excel qui doit fer Bug sur excel [ par osok ] J'ai un gros probleme sur excel.Quand je suis sur l'interface vb et que je crée une listbox, puis que j'execute le programme et que je clique sur faille de protection énorme! [ par gros71 ] bonjour,j'ai fais une appli sous excel, avec un certain nombre de formulaire. je veu protéger mon code car il y a des formules couteuse en études. j'a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,544 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales