Comment Excel feuille de calcul du mot de passe de protection du travail
Ce code a été flottant autour sur le net depuis quelques années - c'est apparemment en mesure de fournir un mot de passe pour déchiffrer une feuille de calcul excel que vous ne connaissez pas le mot de passe.
http://www.theofficeexperts.com/VBASamples/Excel02.htm
Je suis intéressé par la façon dont cela fonctionne, mais je ne semble pas être en mesure de s'en sortir. Je suis en supposant que c'est crypté en vertu d'une certaine valeur qui peut être obtenu dans un certain nombre de moyens (un peu d'endroits sur le net disent qu'il va vous donner le mot de passe d'origine ou un autre qui va travailler) comme une sorte de clé publique, vous pouvez avoir 100 clés publiques de tous les travaux avec un seul privée.
Pour moi, il me semble qu'il est en train de créer des variables de type entier et de les remplir avec un numéro spécifique, avant de mettre ce numéro dans les personnages. Ne serait-ce pas toujours la même? Si oui, est-il "mot de passe maître" pour Excel protection?
Merci à tous!
EDIT: j'ai remarqué que la Pour n = 32 À 126 dans l'exemple de code que j'ai posté. Croisement avec une table ASCII qui semble être tous les caractères à partir de l'espace par le biais d'un tilde. Est-ce une sorte d'attaque de dictionnaire, je ne suis pas la compréhension en raison de la syntaxe?
tellement vrai - aimer le commentaire
il n'y a pas de maître-clés dans les fichiers office. l'algorithme utilisé est au-delà de trivial à la rupture (par exemple, elcomsoft du bureau de récupération de mot de passe de l'app peuvent obtenir un style ancien office de mot de passe quasi instantanément). il n'y a pas de dictionnaire, pas de travail. juste un peu de peu tripoter pour ajouter de l'eau supplémentaire sur le t-shirt pour le rendre encore plus transparents.
En fait, la feuille de code de déverrouillage fonctionne sur Xl2010.
C'est triste que VBA protection ne vaut rien, c'est même plus rapide pour obtenir ronde de protection de feuille de calcul
OriginalL'auteur Andrew White | 2012-10-12
Vous devez vous connecter pour publier un commentaire.
C'est un petit monde, comme le code indique que j'ai posté ce code sur un autre forum autour de 10 ans après l'avoir vu quelque part d'autre - je pense que sur John Walkenbach de l' ancien site web
Il est important de noter que cette protection s'applique à la protection de feuille de calcul uniquement - ne pas Excel fichier ouvrir ou de mots de passe VBA.
excel sheet protection “test” and “zzyw”
donne d'autres références telles que ce de Tom UrtisJe suis confus que votre explication ne correspond pas à la documentation de Microsoft. Dites-vous que lorsque vous avez initialement écrit ce code que le hachage est stockée en tant que valeur de 16 bits codé comme une série de A et B est suivi par un caractère ASCII, et que votre code ne fait qu'essayer toutes les valeurs de hachage?
Ce n'est pas mon code, je l'ai posté à
Experts-Exchange
avoir vu quelque part d'autre. Je suis pas sûr de ce que MSFT la documentation dont vous parlez?+ 1 Bien Expliqué. 🙂
OriginalL'auteur brettdj
Fascinant - je savais que l'extrait de code avant, mais pas l'explication que brettdj posté. Comme d'autres l'ont expliqué, c'est une recherche par force brute pour les collisions de hachage. En fait, il semble avoir été fait par essai et erreur, car il ne prend beaucoup plus de travail que nécessaire (194560 combinaisons sont générés, mais il y a seulement 32768 hashvalues possible.)
Excel algorithme de hachage en bref (comme expliqué dans http://chicago.sourceforge.net/devel/docs/excel/encrypt.html):
Sachant cela, on peut concevoir une recherche par force brute comme suit:
La façon la plus simple est d'utiliser un de 11 caractères, mot de passe et de mettre les compteurs à zéro à la position 1, 6 et 11. Le décalage de bits à l'étape 2 permet d'aligner le compteur de bits de la bonne façon: le premier compteur ("x") est décalé de 1 bit, la seconde ("y") 6 bits, le troisième ("z") 11 bits. Dans une opération de bits de la représentation de la table de hachage, les compteurs d'affecter les bits suivants:
Le XOR des opérations peut être ignoré, car l'argument XOR est constante tout le temps. Pour la même raison, un décalage constant (p. 64) peut être ajouté. Aussi, il n'a pas d'importance ce caractère est utilisé sur les autres octets de mot de passe (entre 2 et 5, 7-10).
Par itération sur toutes les combinaisons possibles de x, y, z, on finit par trouver un mot de passe qui donne la même valeur de hachage que l'original.
C'est la meilleure explication de loin, que j'ai vu, et techniquement, le seul bon, car il identifie le vrai certain nombre de "mots de passe" 2^15 = 32768. Excel la fonction de hachage est une Surjective Fonction, la cartographie d'un grand nombre d'entrée des mots de passe à un petit nombre de mots de passe. Torben identifie un sous-ensemble de la saisie des mots de passe est Bijective pour les tables de hachage, de la création d'une version optimisée de l'oft copié force brute passe cracker.
Merci, cet algorithme est beaucoup plus efficace! @Riche j'ai suivi l'algorithme sur mcgimpsey.com pour un norvégien nommé Einar Ståle Huse. Un lien vers son excel add-in a été publié [ici][1] en 1998, à qui quelqu'un a répondu avec le code réel. [1]: groups.google.com/d/msg/microsoft.public.de.excel/CfA0P4OZzfY/...
OriginalL'auteur Torben Klein
Juste une supposition, mais il me semble que Excel teste si le mot de passe est valide, en l'exécutant à travers une sorte de fonction de hachage qui produit un assez petit nombre de résultats et la compare avec la valeur de hachage stockées.
Supposées ce que cette fonction est en train de faire est de tester toutes les valeurs jusqu'à en trouver un qui fonctionne. À en juger par les valeurs utilisées, la fonction de hachage produit 2^11*(126-31) valeurs différentes, qui peuvent être produites par les valeurs générées dans le présent code.
Mon analyse suppose que cette routine fonctionne. Je n'ai pas testé.
Comme je l'ai dit, je ne suis pas sûr que c'est correct.
OriginalL'auteur mkingston
Le code ne une attaque par force brute en utilisant le cryptage des mots de passe AAAAAAAAAAA(de l'ESPACE) par le biais de BBBBBBBBBBB(~) où (l'ESPACE) est le caractère espace (CHR(32)) et (~) est bien sûr le caractère 126. Lorsque le mot de passe est trouvé, il affiche le mot de passe dans une boîte de message.
Bien sûr, cela signifie que c'est seulement la vérification des mots de passe qui sont précisément 12 caractères de long et qui comprennent uniquement des lettres majuscules A (ASCII 65) et B (ASCII 66), suivie par l'un des caractères ASCII imprimables. @mkingston est juste qu'il tests 2^11*(126-31) valeurs différentes. Mais il n'y a pas de fonction de hachage. Je ne pense pas que cela va se fissurer de nombreuses feuilles de calcul. Vous feriez mieux d'utiliser L'un de ces programmes de AccessData.
Pour plus de détails sur ActiveSheet.Protéger et ActiveSheet.Ôter la protection, voir http://msdn.microsoft.com/en-us/library/office/aa191957(v=office.10).aspx.
Yep. J'ai corrigé ça.
Désolé, probablement à peine eu le commentaire avant de vous en fait 🙂
En fait, ce n'est pas bien comprendre l'application de ce code. Comme en témoignent je ne pense pas que cela va se fissurer de nombreuses feuilles de calcul
Lire le lien que j'ai fourni.
OriginalL'auteur vy32
OriginalL'auteur user3349074