web-dev-qa-db-fra.com

Mot de passe VBA Excel via l'éditeur Hex

J’ai utilisé "l’éditeur Hex pour modifier DPB en DPx" plusieurs fois dans le passé afin de contourner la sécurité des projets VBA sur mes anciens projets Excel VBA (.xls). Je sais donc vraiment comment faire et savoir que je peux le faire.

Cependant, je viens d'essayer de le faire hier et j'ai constaté que cela ne semble plus fonctionner. J'ai essayé d'utiliser Excel 2011 (Mac) et Excel 2003 (Windows) et, dans les deux cas, j'ai eu le même comportement.

L'ouverture de l'éditeur VBA a donné un message indiquant que le projet est corrompu et que le projet sera supprimé. L'éditeur VBA s'ouvre alors et, bien entendu, tout VBA est supprimé des modules et des feuilles de calcul.

J'ai essayé cette méthode: Y a-t-il un moyen de déchiffrer le mot de passe sur un projet Excel VBA? (c'est-à-dire créer une feuille de calcul avec un mot de passe connu puis copier dans les champs appropriés)

Mais trouvez que la longueur de la clé "GC" créée sur ma feuille de calcul "fictive" est plus courte que la clé "GC" de la feuille de calcul à laquelle je souhaite accéder (la "cible"). J'avais lu ailleurs que, dans les cas où les touches "cibles" étaient plus longues, vous pouviez régler les touches "factices" à la même longueur, mais je ne peux rien trouver pour dire quoi faire dans le cas contraire.

So - mes questions (s);

  • Est-ce que quelqu'un sait si un patch a été appliqué qui rend l'approche "éditeur hexadécimal" invalide?
  • Quelqu'un peut-il aider avec quoi faire lorsque les clés factices sont plus longues que les clés cibles?
  • Quelqu'un d'autre peut-il fournir des informations actualisées sur ce problème?

[~ # ~] modifier [~ # ~] Ayant maintenant résolu ce problème (dans une certaine mesure), je pensais ajouter un résumé ici.

N'AI PAS pu obtenir que cela fonctionne sur Mac Excel 2011. Quelque chose à propos de la modification du fichier de filname.xlsm à fielname.Zip et inversement, résultats dans un fichier Excel corrompu qu'Excel 2011 refuse de reconnaître.

Je DID parviens à ce que cela fonctionne sur un ancien ordinateur Windows (XP/Excel 2007) en modifiant le nom du fichier .xlsm en .Zip, en modifiant les valeurs DPB = AND GC = dans vbaproject Fichier .bin avec un éditeur hexadécimal, puis enregistrez-le dans le fichier .Zip avant de renommer le fichier .Zip en xlsm.J’ai utilisé l’exemple "test" donné par Ricko en bas et cela a fonctionné avec ONE CAVEAT - j’ai dû "patiner" ma valeur GC pour qu’elle ait la même longueur que celle de mon fichier.

ORIGINAL:       GC="0F0DA36FAF938494849484"
NEW:  (TEST)    GC="BAB816BBF4BCF4BCF4"  (from Ricko below)
NEW:  (TEST)    GC="BAB816BBF4BCF4BCF40000"  (what i used and what worked)
29
Andrew

J'ai votre réponse, car je viens d'avoir le même problème aujourd'hui:

Quelqu'un a créé un code vba fonctionnel qui modifie le mot de passe de la protection vba en "macro" pour tous les fichiers Excel, y compris .xlsm (versions 2007+). Vous pouvez voir comment cela fonctionne en parcourant son code.

Ceci est le blog du gars: http://lbeliarl.blogspot.com/2014/03/Excel-removing-password-from-vba.html Voici le fichier qui fait le travail: https://docs.google.com/file/d/0B6sFi5sSqEKbLUIwUTVhY3lWZE0/edit

Collé d'un post précédent de son blog:

Pour les fichiers Excel 2007/2010 (.xlsm), procédez comme suit:

  1. Créez un nouveau fichier .xlsm.
  2. Dans la partie VBA, définissez un mot de passe simple (par exemple, "macro").
  3. Enregistrez le fichier et quittez.
  4. Changez l'extension de fichier en '.Zip', ouvrez-le avec n'importe quel programme d'archivage.
  5. Recherchez le fichier: 'vbaProject.bin' (dans le dossier 'xl').
  6. Extrayez-le des archives.
  7. Ouvrez le fichier que vous venez d'extraire avec un éditeur hexadécimal.
  8. Recherchez et copiez la valeur du paramètre DPB (valeur entre guillemets), exemple: DPB = "282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A". (Cette valeur est générée pour le mot de passe 'macro'. Vous pouvez utiliser cette valeur DPB pour ignorer les étapes 1 à 8)

  9. Effectuez les étapes 4 à 7 pour les fichiers avec un mot de passe inconnu (fichier que vous souhaitez déverrouiller).

  10. Modifiez la valeur DBP dans ce fichier sur la valeur que vous avez copiée à l'étape 8.

    Si la valeur copiée est plus courte que dans un fichier crypté, vous devez renseigner les caractères manquants avec 0 (zéro). Si la valeur est plus longue, ce n'est pas un problème (collez-le tel quel).

  11. Enregistrez le fichier 'vbaProject.bin' et quittez l'éditeur hexadécimal.

  12. Remplacez le fichier 'vbaProject.bin' existant par un fichier modifié.
  13. Modifiez l'extension de ".Zip" à ".xlsm".
  14. Maintenant, ouvrez le fichier Excel dans lequel vous devez voir le code VBA. Le mot de passe du code VBA sera simplement macro (comme dans l'exemple que je montre ici).
51
Morosho

Nouvelle version, vous avez également le GC = essayez de remplacer DPB et GC par ceux

DPB = "DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2" GC = "BAB816BBF4BCF4BCF4"

le mot de passe sera "test"

16
Ricko
  1. Ouvrez le fichier xls avec un éditeur hexadécimal.
  2. Rechercher DPB
  3. Remplacez DPB par DPx
  4. Enregistrer le fichier.
  5. Ouvrir le fichier dans Excel.
  6. Cliquez sur "Oui" si vous recevez une boîte de message.
  7. Définissez le nouveau mot de passe à partir des propriétés du projet VBA.
  8. Fermez et ouvrez à nouveau le fichier, puis tapez votre nouveau mot de passe pour déprotéger.

Vérifiez http://blog.getspool.com/396/best-vba-password-recovery-cracker-tool-remove/

13
John

Si vous traitez avec le fichier .xlsm Au lieu de .xls, Vous pouvez utiliser l'ancienne méthode. J'essayais de modifier vbaProject.bin Dans .xlsm Plusieurs fois en utilisant la méthode DBP->DBx, Cela ne fonctionnait pas, mais la valeur de DBP ne fonctionnait pas. J'ai donc été très surpris de ce qui suit a fonctionné:
1. Enregistrez .xlsm En tant que .xls.
2. Utilisez la méthode DBP->DBx Sur .xls.
3. Malheureusement, des erreurs peuvent survenir lors de l'utilisation du fichier modifié .xls. J'ai dû enregistrer .xls Sous le nom .xlsx, Ajouter des modules, puis enregistrer sous le format .xlsm.

4
Qbik