human
Comment modifier un fichier DLL dans Visual Studio ?
gpt
Le commun des usagers de l’informatique ignore pratiquement tout des fichiers DLL et pour cause : ils sont utilisés en tâche de fond par des programmes pour exécuter certaines opérations. Si par contre, vous voulez aller plus avant dans la programmation, si vous voulez savoir comment fonctionne un programme sur tel ou tel aspect particulier, alors Visual Studio de Microsoft est fait pour vous. Cette suite de logiciels de développement permet l’exécution et la modification partielles des fichiers DLL. Pour ce qui est de jeter un coup d’œil au code d’un tel fichier, il vous faudra une application de décompilation. C’est de la programmation avancée !

1. Absolument !

Mais les modifications se cantonneront à certaines ressources et pour être schématique, ce sont des ressources graphiques et textuelles qui pourront être ajoutées, supprimées et modifiées. Par contre, il n’est pas possible avec Visual Studio de modifier les fonctions d’un fichier DLL.

2. Dans la plupart des cas, non !

Le code contenu dans un fichier DLL ne peut pas être extrait simplement afin, par exemple, de le coller dans un éditeur de texte brut. Ce code des fichiers DLL a été compilé en un langage de plus bas niveau (code machine ou binaire.

Si le fichier DLL renferme une quelconque portion de code en langage intermédiaire (IL), vous pourrez le visualiser avec l’outil Désassembleur IL présent dans Visual Studio. S’il contient un code compilé en CIL, il vous faudra d’abord en passer par CIL Disassembler, lequel n’est pas compris dans Visual Studio, mais il est gratuit et téléchargeable sur le Microsoft Store.
Si un fichier DLL ne fonctionne pas comme vous le souhaitez, vous pouvez, sous certaines conditions de récupération du code, créer un fichier du même type à partir du code source de départ. Nous insistons : ce ne sera pas le fichier transformé du départ, mais bien un nouveau fichier qui viendra remplacer celui qui dysfonctionnait.

3. Essayez de le reconstruire avec un programme de décompilation.

Certains programmes sont capables de convertir en langage de haut niveau, comme le C++ ou le C#	, le code machine d’un fichier DLL.

 tout code que vous parviendriez à extraire d’un fichier DLL ne serait qu’une reconstruction qui diffère plus ou moins du code source de départ. La conséquence en est que si vous créez un fichier DLL avec ce code en quelque sorte reconstitué, vous allez devoir tester tous les programmes qui utilisent cette bibliothèque de liens dynamiques pour voir si elle remplit bien son office. Et ce n’est pas une mince affaire !

4. Il s’exécute comme n’importe quel fichier.

Et pour un fichier DLL, il suffit d’avoir Visual Studio. Exécutez le programme, puis cliquez sur  dans la barre de menus du haut. Sélectionnez. Parcourez l’arborescence de votre disque dur, cliquez une seule fois sur le fichier DLL concerné, puis sur. Le contenu du fichier s’affiche alors dans une fenêtre de l‘Éditeur de ressources. L’autre solution pour ouvrir un fichier DLL est la suivante  :

il va de soi que Visual Studio est installé sur votre disque dur ;
faites la combinaison de touches ⊞ Win+E afin d’ouvrir l’Explorateur de fichiers ;
retrouvez le dossier contenant le fichier DLL en question ;
faites un clic droit sur le dossier, puis cliquez sur  ;
développez le dossier dans la fenêtre de l’Explorateur de solutions située à droite ;
doublecliquez sur le fichier voulu.

5. C’est très facile avec Visual Studio.

Parmi les ressources que l’on peut ajouter, il y a des tables d’accélérateurs (raccourcis clavier), des images matricielles, des curseurs, des icônes, des boites de dialogue, des menus, des fichiers HTML, des fichiers audios (WAV), des tables de hachage… Opérez de la façon qui suit :

exécutez le fichier dans Visual Studio ;
dans la fenêtre de l’Éditeur de ressources, faites un clic droit sur le dossier dans lequel vous voulez placer la ressource ;
cliquez sur  ;
doublecliquez sur le type de ressource voulu ou cliquez sur  pour un fichier déjà existant ;
cliquez sur  ;
cliquez sur  pour sauvegarder le fichier transformé ou sur  pour une copie.

6. La chose est facile à faire dans Visual Studio.

modifier le contenu d’un fichier DLL ou le supprimer peut, si c’est mal fait, entrainer le dysfonctionnement du programme qui s’en sert. Comme avant toute modification, il est toujours utile de faire une sauvegarde du fichier. Pour la suppression d’une ressource, opérez comme suit :

ouvrez le fichier DLL dans Visual Studio ;
développez, dans l’Éditeur de ressources, le dossier renfermant la ressource à supprimer ;
faites un clic droit sur la ressource non voulue, puis cliquez sur  ;
cliquez sur  ;
cliquez sur  pour sauvegarder le fichier transformé ou sur  pour une copie.

7. C’est également très facile.

Vous pouvez partir de votre propre code source ou reprendre un code source contenu dans un autre fichier et bien sûr décompilé. La création d’un fichier DLL s’opère ainsi  :

exécutez  ;
cliquez sur  ;
tapez class dans la barre de recherche du haut ;
faites défiler l’écran, puis sélectionnez , puis cliquez sur  ;
donnez un nom à votre projet, puis cliquez sur  ;
tapez ou collez le code de votre fichier DLL ;
cliquez sur  dans la barre de menus du haut ;
cliquez sur  afin de créer un nouveau fichier ;
voyez en bas de la fenêtre où se trouve le fichier que vous venez de créer.

8. Vous pouvez le faire avec l’invite de commande de Visual Studio.

C’est celle du développeur. Ne le cherchez pas : il est intégré à Visual Studio. Grâce à cette invite, vous allez pouvoir faire apparaitre ce qui, dans le fichier DLL, relève d’un langage intermédiaire (IL) ou assembleur. Pour ouvrir ainsi le fichier avec l’invite de commande, procédez comme suit :

cliquez sur le menu  ;
tapez Developer Command Prompt ;
cliquez sur  (l’année sera peut-être différente en fonction de la version de VS que vous avez) ;
tapez ILDASM.EXE, puis validez avec la touche Entrée ;
faites un glisser-déposer du fichier DLL sur la fenêtre du désassembleur ;
dans la fenêtre du désassembleur, développez le nom du fichier sous  ;
cliquez sur une classe ou une fonction pour visualiser le code d’assemblage.

9. Utilisez un programme tiers de décompilation.

Ces programmes, qui sont nombreux, peuvent convertir un code machine en un langage de haut niveau, comme le C++ ou le C#.  le code obtenu n’est pas une copie fidèle du code initial avant compilation, mais bien une reconstruction, ce qui ne vous garantit en rien de récupérer tout le code premier. Pour cette décompilation, opérez de la façon suivante  :

téléchargez et installez un programme de décompilation. Parmi eux, nous vous conseillons Reflector, dotPeek ou JustDecompile ;
exécutez votre programme de décompilation ;
faites un glisser-déposer du fichier DLL sur la fenêtre centrale du programme de décompilation ;
développez, dans la colonne de droite, le programme ou le nom du fichier ;
développez le nom du programme à côté des guillemets ;
cliquez sur le nom de la fonction ou de la classe afin de découvrir son code ;
copiez le code dans un fichier Visual Studio, sinon cliquez sur , puis sur.

10. Enregistrez certaines dans le Registre de Windows.

C’est la condition pour que ces fichiers DLL puissent remplir leur rôle. La chose est faisable avec la boite de dialogue Exécuter. Voilà précisément la façon de faire sous Windows 10  :

faites la combinaison de touches ⊞ Win+R pour lancer la boite de dialogue Exécuter ;
tapez regsvr32 dans le champ  ;
faites un glisser-déposer du fichier DLL sur ce même champ  afin de faire apparaitre le chemin d’accès de ce fichier.
ajoutez les guillemets (" ") de part et d’autre de ce chemin d’accès ;
cliquez sur.