> Tech > Un meilleur moyen

Un meilleur moyen

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

J’ai créé un outil, DotNetWrapper.vbs, qui donne un meilleur moyen de protection des scripts. Non seulement DotNetWrapper.vbs encode un script, mais il le compile aussi dans un exécutable – sans que vous ayez à réécrire une seule ligne de code. Contrairement au Script Encoder, DotNet- Wrapper.vbs ne vous limite pas

à certains types de scripts. Vous pouvez l’utiliser avec tout script que vous aurez sauvegardé comme un fichier de texte et qui sera lancé par un moteur de script ou à partir de la ligne de commande. Par conséquent, DotNetWrapper.vbs s’accommode d’une grande variété de scripts, dont des fichiers .vbs, .js, .htm, .bat, .cmd et .hta.

DotNetWrapper.vbs utilise le compilateur ligne de commande Visual Basic .NET (vbc.exe) qui accompagne le Microsoft .NET Framework. DotNetWrapper.vbs crée un exécutable Visual Basic .NET qui exécute, à la volée, le script que vous voulez protéger. Pour cela, DotNetWrapper.vbs stocke le contenu du script dans une variable à l’intérieur de l’exécutable. Ce dernier écrit le script dans un fichier temporaire et appelle le moteur de script ou l’interpréteur de commandes approprié pour l’exécuter. Dès que le script est lancé, l’exécutable supprime le fichier temporaire.

Par lui-même, ce procédé offre une certaine protection. Cependant, en examinant un exécutable .NET dans un éditeur de texte, vous constaterez la présence de texte clair. En particulier, le code source du script serait encore visualisable. Certes il ne serait pas facilement lisible (en raison des blancs entre les caractères et de l’absence de coupures de lignes), mais visible tout de même. Pour renforcer la protection, le script inclut la fonction EncodeScript, qui applique un mécanisme de rotation d’un seul caractère. Comme le montre le listing 1, cette fonction décale les caractères alphabétiques de 128 positions. Les caractères numériques et les autres caractères non alphabétiques sont laissés de côté. Un schéma de décodage est intégré dans l’exécutable .NET.

Outre les avantages que j’ai déjà indiqués, le fait de loger vos scripts dans un exécutable .NET procure les avantages inhérents à un fichier .exe. Vous pouvez ajouter une icône personnalisée pour l’exécutable. Et aussi utiliser l’outil RunAs pour exécuter le script que vous voulez protéger sous un compte différent de celui avec lequel vous vous êtes connectés. Les nombreux avantages de DotNetWrapper.vbs s’accompagnent de quelques limitations. Il faut exécuter DotNetWrapper.vbs sur une machine sur laquelle le .NET Framework est installé. Et aussi, faire tourner l’exécutable sur un ordinateur local. Il ne fonctionnera pas si vous le faites tourner à partir d’un périphérique de réseau ou d’un chemin UNC (Universal Naming Convention). Enfin, comme le script qui est protégé est supprimé aussitôt après son lancement, tout événement ultérieur faisant référence à ce script, déraillera. Ainsi, supposons que vous utilisiez DotNetWrapper. vbs pour protéger une HTML Application (HTA) ou une page HTML.

Si vous tentez de visualiser le code source de la HTA ou de la page HTML en sélectionnant l’option Source sur le menu View dans Microsoft Internet Explorer (IE), vous obtiendrez un écran vierge. Et toute tentative de rafraîchir la page HTA ou HTML provoquera un « plantage ». A noter que vous pouvez utiliser DotNetWrapper.vbs pour des scripts qui demandent des réponses. Par exemple, pour exécuter des scripts sous WScript qui incluent la fonction InputBox.

Téléchargez cette ressource

Les 10 tendances clés de l’Expérience Client (CX) pour 2025

Les 10 tendances clés de l’Expérience Client (CX) pour 2025

Dans le contexte actuel, l'expérience client est un levier clé de réussite. Pour rester compétitives, les entreprises doivent adopter des stratégies CX audacieuses, en s'appuyant sur le cloud, le digital et l'IA. Alors quelles stratégies mettre en place pour garder une longueur d’avance ?

Tech - Par Renaud ROSSET - Publié le 24 juin 2010