La inyección de código es común en Windows. Las aplicaciones «inyectan» fragmentos de su propio código en otro proceso en ejecución para modificar su comportamiento. Esta técnica se puede usar para bien o para mal, pero de cualquier manera puede causar problemas.
La inyección de código también se denomina comúnmente inyección de DLL porque el código inyectado suele tener la forma de un archivo DLL (biblioteca de vínculos dinámicos) . Sin embargo, las aplicaciones también podrían inyectar otros tipos de código que no sean DLL en un proceso.
La inyección de código se utiliza para realizar todo tipo de trucos y funciones en Windows. Si bien los programas legítimos lo usan, también lo usa el malware. Por ejemplo:
Esta técnica es utilizada constantemente por una amplia variedad de aplicaciones en Windows. Es la única forma real de realizar una variedad de tareas. Comparado con una plataforma móvil moderna como iOS de Apple o Android de Google, el escritorio de Windows es tan poderoso porque ofrece este tipo de flexibilidad a los desarrolladores.
Por supuesto, todo ese poder conlleva cierto peligro. La inyección de código puede causar problemas y errores en las aplicaciones. Google dice que los usuarios de Windows que tienen código inyectado en su navegador Chrome tienen un 15% más de probabilidades de experimentar fallas de Chrome, razón por la cual Google está trabajando para bloquear esto. Microsoft señala que las aplicaciones maliciosas podrían usar la inyección de código para alterar la configuración del navegador, que es una de las razones por las que ya está bloqueado en Edge.
Microsoft incluso proporciona instrucciones para verificar si las DLL de terceros están cargadas en Microsoft Outlook, ya que provocan muchos bloqueos de Outlook.
Como lo puso un empleado de Microsoft en un blog de desarrolladores de 2004:
La inyección de DLL nunca es segura. Estás hablando de introducir código en un proceso que nunca fue diseñado, construido o probado por el autor del proceso, y cooptar o crear un hilo para ejecutar ese código. Corre el riesgo de crear problemas de tiempo, sincronización o recursos que no existían antes o agravar los problemas que estaban allí.
En otras palabras, la inyección de código es una especie de truco sucio. En un mundo ideal, habría una forma más segura de lograr esto que no causara inestabilidad potencial. Sin embargo, la inyección de código es solo una parte normal de la plataforma de aplicaciones de Windows en la actualidad. Está sucediendo constantemente en segundo plano en su PC con Windows. Podrías llamarlo un mal necesario.
Puede comprobar la inyección de código en su sistema con la potente aplicación Process Explorer de Microsoft . Es básicamente una versión avanzada del Administrador de tareas con características adicionales.
Descargue y ejecute Process Explorer si desea hacer esto. Haga clic en Ver> Vista del panel inferior> DLL o presione Ctrl + D.
Seleccione un proceso en el panel superior y busque en el panel inferior para ver las DLL que están cargadas. La columna «Nombre de la empresa» proporciona una forma útil de filtrar esta lista.
Por ejemplo, es normal ver una variedad de archivos DLL creados por “Microsoft Corporation” aquí, ya que son parte de Windows. También es normal ver archivos DLL creados por la misma empresa que el proceso en cuestión: «Google Inc.» en el caso de Chrome en la captura de pantalla a continuación.
También podemos ver algunas DLL creadas por “Software AVAST” aquí. Esto indica que el software antimalware Avast de nuestro sistema está inyectando código como la “biblioteca de filtros de bloqueo de scripts de Avast” en Chrome.
No hay mucho que pueda hacer si encuentra la inyección de código en su sistema, aparte de desinstalar el programa que inyecta código para evitar que cause problemas. Por ejemplo, si Chrome se bloquea con regularidad, es posible que desee ver si hay programas que inyectan código en Chrome y desinstalarlos para evitar que alteren los procesos de Chrome.
La inyección de código no modifica la aplicación subyacente en su disco. En cambio, espera a que se ejecute esa aplicación e inyecta código adicional en ese proceso en ejecución para cambiar su funcionamiento.
Windows incluye una variedad de interfaces de programación de aplicaciones (API) que se pueden usar para la inyección de código. Un proceso puede adjuntarse a un proceso de destino, asignar memoria, escribir una DLL u otro código en esa memoria y luego instruir al proceso de destino para que ejecute el código. Windows no evita que los procesos en su computadora interfieran entre sí de esta manera.
Para obtener más información técnica, consulte esta publicación de blog que explica cómo los desarrolladores pueden inyectar archivos DLL y este vistazo a otros tipos de inyección de código en Windows .
En algunos casos, alguien puede cambiar el código subyacente en el disco, por ejemplo, reemplazando un archivo DLL que viene con un juego de PC por uno modificado para permitir trampas o piratería. Esto técnicamente no es una «inyección de código». El código no se inyecta en un proceso en ejecución, sino que se engaña al programa para que cargue una DLL diferente con el mismo nombre.
Haber de imagen: Lukatme /Shutterstock.com.
El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…
Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…
LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…
Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…
Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…
fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…