Qu’est-ce que l’injection de code sous Windows ?


L’injection de code est courante sous Windows. Les applications « injectent » des morceaux de leur propre code dans un autre processus en cours d’exécution pour modifier son comportement. Cette technique peut être utilisée pour le bien ou le mal, mais dans tous les cas, elle peut causer des problèmes.

L’injection de code est aussi communément appelée injection de DLL car le code injecté se présente souvent sous la forme d’un fichier DLL (bibliothèque de liens dynamiques). Cependant, les applications peuvent également injecter d’autres types de code qui ne sont pas des DLL dans un processus.

À quoi sert l’injection de code

L’injection de code est utilisée pour accomplir toutes sortes d’astuces et de fonctionnalités sur Windows. Bien que des programmes légitimes l’utilisent, il est également utilisé par des logiciels malveillants. Par example:

  • Les programmes antivirus injectent souvent du code dans les navigateurs Web. Ils peuvent l’utiliser pour surveiller le trafic réseau et bloquer les contenus Web dangereux, par exemple.
  • Des programmes malveillants peuvent ajouter du code à votre navigateur Web pour mieux suivre votre navigation, voler des informations protégées telles que les mots de passe et les numéros de carte de crédit et modifier les paramètres de votre navigateur.
  • Les WindowBlinds de Stardock, qui thématisent votre bureau, injectent du code pour modifier la façon dont les fenêtres sont dessinées.
  • Stardock’s Fences injecte du code pour modifier le fonctionnement du bureau Windows.
  • AutoHotkey, qui vous permet de créer des scripts et de leur attribuer des raccourcis clavier à l’échelle du système, injecte du code pour accomplir cela.
  • Les pilotes graphiques comme ceux de NVIDIA injectent des DLL pour accomplir une variété de tâches liées aux graphiques.
  • Certains programmes injectent des DLL pour ajouter des options de menu supplémentaires à une application.
  • Les outils de triche sur les jeux PC injectent souvent du code dans les jeux pour modifier leur comportement et obtenir un avantage injuste sur les autres joueurs.

L’injection de code est-elle mauvaise ?

Cette technique est utilisée en permanence par une grande variété d’applications sous Windows. C’est le seul véritable moyen d’accomplir une variété de tâches. Comparé à une plate-forme mobile moderne comme iOS d’Apple ou Android de Google, le bureau Windows est si puissant car il offre ce type de flexibilité aux développeurs.

Bien sûr, avec tout ce pouvoir vient un certain danger. L’injection de code peut causer des problèmes et des bogues dans les applications. Google dit que les utilisateurs de Windows qui ont du code injecté dans leur navigateur Chrome sont 15 % plus susceptibles de subir des plantages de Chrome, c’est pourquoi Google travaille à le bloquer. Microsoft note que l’injection de code pourrait être utilisée par des applications malveillantes pour altérer les paramètres du navigateur, ce qui est l’une des raisons pour lesquelles elle est déjà bloquée dans Edge.

En relation :  Qu'est-ce que Vero True Social? 9 choses à considérer avant de rejoindre

Microsoft fournit même instructions pour vérifier si des DLL tierces sont chargées dans Microsoft Outlook, car elles provoquent de nombreux plantages d’Outlook.

Comme l’a dit un employé de Microsoft dans un blog développeur à partir de 2004 :

L’injection de DLL n’est jamais sûre. Vous parlez d’injecter du code dans un processus qui n’a jamais été conçu, construit ou testé par l’auteur du processus, et de coopter ou de créer un thread pour exécuter ce code. Vous courez le risque de créer des problèmes de synchronisation, de synchronisation ou de ressources qui n’existaient pas auparavant ou d’exacerber les problèmes qui existaient.

En d’autres termes, l’injection de code est une sorte de sale hack. Dans un monde idéal, il y aurait un moyen plus sûr d’y parvenir qui ne causerait pas d’instabilité potentielle. Cependant, l’injection de code n’est qu’une partie normale de la plate-forme d’application Windows aujourd’hui. Cela se produit constamment en arrière-plan sur votre PC Windows. Vous pourriez appeler cela un mal nécessaire.

Comment vérifier les DLL injectées

Vous pouvez vérifier l’injection de code sur votre système avec le puissant Explorateur de processus application. Il s’agit essentiellement d’une version avancée du gestionnaire de tâches contenant des fonctionnalités supplémentaires.

Téléchargez et exécutez Process Explorer si vous souhaitez le faire. Cliquez sur Affichage > Affichage du volet inférieur > DLL ou appuyez sur Ctrl+D.

Sélectionnez un processus dans le volet supérieur et regardez dans le volet inférieur pour voir les DLL chargées. La colonne « Nom de la société » fournit un moyen utile de filtrer cette liste.

Par exemple, il est normal de voir ici une variété de DLL créées par « Microsoft Corporation », car elles font partie de Windows. Il est également normal de voir des DLL créées par la même société que le processus en question : « Google Inc. » dans le cas de Chrome dans la capture d’écran ci-dessous.

Nous pouvons également repérer quelques DLL créées par « AVAST Software » ici. Cela indique que le logiciel antimalware Avast sur notre système injecte du code comme la « bibliothèque de filtres de blocage de script Avast » dans Chrome.

Il n’y a pas grand-chose que vous puissiez faire si vous trouvez une injection de code sur votre système, à part désinstaller le programme en injectant du code pour l’empêcher de causer des problèmes. Par exemple, si Chrome se bloque régulièrement, vous voudrez peut-être voir s’il existe des programmes qui injectent du code dans Chrome et les désinstaller pour les empêcher de falsifier les processus de Chrome.

En relation :  Comment transférer la bibliothèque musicale Google Play vers YouTube Music

Comment fonctionne l’injection de code ?

L’injection de code ne modifie pas l’application sous-jacente sur votre disque. Au lieu de cela, il attend que cette application s’exécute et injecte du code supplémentaire dans ce processus en cours d’exécution pour modifier son fonctionnement.

Windows inclut une variété d’interfaces de programmation d’applications (API) qui peuvent être utilisées pour l’injection de code. Un processus peut s’attacher à un processus cible, allouer de la mémoire, écrire une DLL ou un autre code dans cette mémoire, puis demander au processus cible d’exécuter le code. Windows n’empêche pas les processus de votre ordinateur d’interférer les uns avec les autres de cette manière.

Pour plus d’informations techniques, consultez cet article de blog expliquant comment les développeurs peuvent injecter des DLL et ce regard sur autres types d’injection de code sous Windows.

Dans certains cas, quelqu’un peut modifier le code sous-jacent sur le disque, par exemple en remplaçant un fichier DLL fourni avec un jeu PC par un fichier modifié pour permettre la tricherie ou le piratage. Il ne s’agit pas techniquement d’une « injection de code ». Le code n’est pas injecté dans un processus en cours d’exécution, mais le programme est plutôt amené à charger une autre DLL portant le même nom.

Crédit d’image : Lukatme/Shutterstock.com.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.