Récupération du mot de passe perdu d'une macro VBA SOLIDWORKS

Article de GoEngineer sur nov. 04, 2018

Quiconque maîtrise suffisamment l'automatisation SOLIDWORKS a déjà touché aux macros. La plupart des utilisateurs commencent par les macros VBA, et certains passent aux macros VSTA, aux compléments .NET ou aux applications autonomes.

Mais à un moment donné, lors de la création de ces macros VBA, nous avons décidé de les protéger par mot de passe afin que personne ne puisse, par curiosité, pirater ce chef-d'œuvre de programmation ! Puis, environ un an plus tard, tu dois changer quelque chose, tu changes la macro et là, oups ! Quel était ce mot de passe ? L'ai-je noté quelque part ? Il ne vous reste donc plus qu'à recommencer ou à vous contenter de ce que vous avez. Mais ce n'est pas le cas, on a une solution !

Avec les étapes ci-dessous, je vais vous montrer une technique pour récupérer votre mot de passe et faire ces modifications.

Ce dont vous aurez besoin :

  • Ancienne macro protégée par mot de passe
  • Nouvelle macro protégée par mot de passe avec mot de passe connue
  • Éditeur hexadécimal (HxP)
  • Éditeur de texte (Bloc-notes++)
  • SOLIDWORKS

Mesures :

1. Ouvrez la nouvelle et l’ancienne macro dans l’éditeur Hex.
2. Cherchez d'abord l'une des chaînes de texte suivantes dans l'ancien fichier
3. « CMG = », « DPB = », « GC = »
4. Une fois que vous en avez trouvé un, localisez la chaîne commençant par « DPB= » et sélectionnez-la (Figure 1)

Figure 1: HxD interface with string selected

Figure 1 : Interface HxD avec chaîne sélectionnée

4. Copiez maintenant cette chaîne dans votre éditeur de texte (Figure 2).

Figure 2: First string pasted in text editor

Figure 2 : Première chaîne collée dans l'éditeur de texte

5. Retournez à l'éditeur Hex et effectuez la même recherche sur la macro avec le mot de passe connu (Figure 3).

Figure 3: HxD interface with known password string selected

Figure 3 : Interface HxD avec chaîne de mot de passe connue sélectionnée

6. Copiez cette chaîne sur la ligne vide sous la première dans l'éditeur de texte (Figure 4).

Figure 4: First string pasted in text editor

Figure 4 : Première chaîne collée dans l'éditeur de texte

Remarque : Assurez-vous que la longueur de la chaîne est identique (affichée dans la barre d'état du texte sélectionné dans Notepad++). Si ce n'est pas le cas et que la nouvelle chaîne est plus courte, ajoutez simplement des zéros à la fin de la chaîne jusqu'à ce qu'elle ait la même longueur.
7. Copiez maintenant la nouvelle chaîne depuis l'éditeur de texte pour vous assurer qu'il s'agit bien de la dernière chaîne présente dans le presse-papiers. Dans l'éditeur hexadécimal, sélectionnez la chaîne dans la macro de mot de passe inconnu. Faites un clic droit sur la chaîne sélectionnée et sélectionnez « Coller/Écrire » (Figure 5).

Figure 5: Using “Paste Write” in right-click to overwrite old string

Figure 5 : Utilisation de « Coller/Écrire » avec un clic droit pour écraser l'ancienne chaîne

8. Avec la nouvelle chaîne écrite sur l'ancienne chaîne, cliquez sur l'icône Enregistrer dans l'éditeur Hex et fermez le fichier.
9. Finalement, ouvrez SOLIDWORKS et essayez de modifier l'ancienne macro. Lorsqu'un mot de passe vous est demandé, entrez celui de la macro connue pour pouvoir la modifier.

Si cela ne fonctionne pas, essayez de remplacer la chaîne « DPB= » aux deux emplacements du fichier, et pas seulement au premier. Certaines applications de récupération de mot de passe VBA fonctionnent également dans cet environnement.

 

À propos de GoEngineer

GoEngineer offre des logiciels, des technologies et une expertise qui permettent aux entreprises de libérer l'innovation en matière de conception et de livrer de meilleurs produits plus rapidement. Avec plus de 40 ans d'expérience et des dizaines de milliers de clients dans les secteurs de la haute technologie, des dispositifs médicaux, de la conception de machines, de l'énergie et d'autres industries, GoEngineer fournit des solutions de conception de premier plan avec SOLIDWORKS CAD, l'impression 3D Stratasys, la numérisation 3D Creaform et Artec, CAMWorks, PLM, et plus.

Voir tous les messages de GoEngineer