Excel VBA Password via Hex Editor
j'ai utilisé l '"éditeur Hex pour modifier DPB à DPx" à plusieurs reprises dans le passé pour contourner la sécurité de projet VBA sur mes anciens projets Excel VBA (.xls), donc je sais comment le faire et je sais que je peux le faire.
Toutefois, j'ai juste essayé de le faire hier et a constaté qu'il 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;
ouverture de l'éditeur VBA a donné message indiquant que le projet est endommagé et que le projet sera supprimé. L'éditeur VBA s'ouvre alors et, bien sûr, tout le VBA est retiré des modules et des feuilles de travail.
j'ai essayé cette méthode: y a-t-il un moyen de déchiffrer le mot de passe d'un projet Excel VBA? (ie. créer une feuille de calcul avec un mot de passe connu et ensuite copier à travers les champs pertinents)
mais trouver que la longueur de la touche "GC" créée sur mon la feuille de calcul " factice "est plus courte que la touche" GC "de la feuille de calcul à laquelle je souhaite accéder (la"cible"). J'avais lu ailleurs que dans les cas où les touches "cible" étaient plus longues, on pouvait coller les touches "factices" à la même longueur, mais il n'y a rien que je puisse trouver pour dire quoi faire dans le cas inverse.
mes questions (s);
- est-ce que quelqu'un sait si un correctif a été appliqué qui rend l'approche" Hex editor " invalide?
- est-ce que quelqu'un peut aider avec ce qu'il faut faire lorsque les clés factices sont plus longues que les clés cibles?
- est-ce que quelqu'un d'autre peut fournir une mise à jour sur place à ce sujet?
MODIFIER Ayant maintenant résolu ce (à un certain degré) j'ai pensé que je voudrais ajouter un résumé ici.
I N'ont pas été en mesure d'obtenir ce travail sur Mac Excel 2011. Quelque chose à propos de changer le fichier de filname.xlsm à fielname.zip et retour donne lieu à un fichier excel corrompu que Excel 2011 refuse de reconnaître.
j'ai réussi à obtenir que cela fonctionne sur une vieille machine windows (XP/Excel 2007) en modifiant le .xlsm nom de fichier .zip, éditant les valeurs DPB= et GC= dans le vbaproject.bin fichier avec un éditeur hexadécimal, puis l'enregistrement de cette dans le .fichier zip avant de renommer le .zip arrière pour xlsm. J'ai utilisé L'exemple "test" donné par Ricko en bas et il a fonctionné avec un Mise en garde - j'ai dû "comprimer" ma valeur GC pour obtenir la même longueur que la valeur originale dans mon dossier.
ORIGINAL: GC="0F0DA36FAF938494849484"
NEW: (TEST) GC="BAB816BBF4BCF4BCF4" (from Ricko below)
NEW: (TEST) GC="BAB816BBF4BCF4BCF40000" (what i used and what worked)
4 réponses
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 change le mot de passe de protection vba en "macro", pour tous les fichiers excel, y compris .xlsm (2007+ versions). Vous pouvez voir comment cela fonctionne en parcourant son code.
C'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
tiré D'un billet précédent de son blog:
Pour Excel 2007/2010 (.xlsm) les fichiers font les étapes suivantes:
- créer un nouveau .fichier xlsm.
- dans la partie VBA, définissez un mot de passe simple (par exemple 'macro').
- Enregistrer le fichier et quitter.
- modifier l'extension de fichier à '.zip, ouvert par n'importe quel programme archiveur.
- trouver le fichier: 'vbaProject.bin' (dans le dossier' xl').
- extrait des archives.
- Ouvrir le fichier que vous venez d'extraire avec un éditeur hexadécimal.
-
trouver et copier la valeur du paramètre DPB (valeur entre guillemets), exemple: DPB = "282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A". (Cette valeur générée pour "macro" le mot de passe. Vous pouvez utiliser cette valeur DPB pour sauter les étapes 1-8)
-
faites les étapes 4-7 pour le fichier avec mot de passe inconnu (fichier que vous voulez déverrouiller).
-
changez 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 le fichier crypté, vous devez remplir les caractères manquants avec 0 (zéro). Si la valeur est plus que n'est pas un problème (coller comme est).
-
Enregistrer le projet vba.bin fichier et quittez l'éditeur hex.
- remplacer " vbaProject.bin fichier modifié.
- modifier l'extension de ".zip' à '.xlsm '
- 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 le exemple je fais preuve ici).
nouvelle version, Maintenant vous avez aussi le GC= essayez de remplacer à la fois DPB et GC avec ceux
DPB= " DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2" GC= "BAB816BBF4BCF4BCF4 "
mot de passe sera "test"
- ouvrir le fichier xls avec un éditeur hex.
- recherche de
DPB
- remplacer
DPB
parDPx
- Enregistrer le fichier.
- ouvrir le fichier en Excel.
- cliquez sur " Oui " si vous recevez une boîte de message.
- définit un nouveau mot de passe à partir des propriétés du projet VBA.
- fermez et ouvrez de nouveau le fichier, puis tapez votre nouveau mot de passe pour unprotect.
Check http://blog.getspool.com/396/best-vba-password-recovery-cracker-tool-remove /
si vous utilisez .xlsm
au lieu de .xls
, vous pouvez utiliser l'ancienne méthode. J'ai essayé de modifier vbaProject.bin
dans .xlsm
plusieurs fois en utilisant DBP->DBx
méthode par elle n'a pas fonctionné, aussi changer la valeur de DBP
n'a pas. Donc j'ai été très surpris que la suivante a travaillé:
1. Enregistrer .xlsm
comme .xls
.
2. Utilisez la méthode DBP->DBx
sur la méthode .xls
.
3. Malheureusement certaines erreurs peuvent se produire en utilisant modifié .xls
fichier, j'ai dû sauver .xls
comme .xlsx
et ajouter des modules, puis enregistrer comme .xlsm
.