Injeção de código é uma técnica muito comum no Windows. Os aplicativos “injetarão” seu próprio código em outro processo em execução para alterar o comportamento desse processo. Essa técnica pode ser usada para fins bons ou ruins, mas de qualquer forma pode causar problemas indesejados. Software antivírus , como software antivírus , injeta código no Chrome para modificar seu comportamento. Isso faz com que problemas de navegador ocorram com mais frequência.
A injeção de código também é frequentemente chamada de injeção de DLL porque os pedaços de código injetados em outros processos geralmente estão na forma de arquivos DLL - Dynamic Link Library. No entanto, às vezes os aplicativos também podem injetar outros tipos de código que não estão na forma de arquivos DLL em outro processo.

Para que é usada a injeção de código?
Code Injection é usado para executar todos os truques e funções do Windows. A injeção de código é usada tanto por software legítimo quanto por malware, por exemplo:
- Os programas antivírus geralmente inserem scripts em navegadores da web e os utilizam para monitorar o tráfego de rede e bloquear conteúdo perigoso da web.
- Programas maliciosos podem adicionar código ao seu navegador para rastrear seu histórico e informações de navegação e, em seguida, roubar informações protegidas, como senhas, números de cartão de crédito e alterações instaladas em seu navegador.
- WindowBlinds da Stardock injeta código para modificar como as janelas são abertas.
- Fences da Stardock injeta código para mudar a forma como o Windows funciona.
- AutoHotkey insere códigos para permitir que você crie scripts e atribua teclas de atalho para todo o sistema.
- Drivers gráficos como os da NVIDIA enviam arquivos DLL para executar uma variedade de tarefas relacionadas a gráficos.
- Alguns programas injetam arquivos DLL para adicionar opções adicionais a um aplicativo.
- Os cheats de jogos para PC geralmente injetam código nos jogos para modificar suas características, dando assim aos trapaceiros uma vantagem injusta sobre outros jogadores.
A injeção de código é ruim?
Essa técnica é constantemente usada por muitos aplicativos diferentes no Windows. É verdadeiramente único para executar uma variedade de tarefas. Comparado a uma plataforma moderna de sistema operacional móvel como o iOS da Apple ou o Android do Google, o Windows é muito mais poderoso porque oferece essa flexibilidade aos desenvolvedores.
Claro, também existem alguns perigos envolvidos. A injeção de código pode causar problemas e erros no aplicativo. O Google diz que os usuários do Windows que incluem software que injeta código no Chrome têm 15% mais probabilidade de encontrar erros no Chrome do que o normal, e é por isso que o Google está trabalhando para evitar a injeção de código.
A Microsoft ainda fornece instruções para que os usuários possam verificar se arquivos DLL de terceiros estão sendo carregados no Microsoft Outlook porque esses arquivos causarão muitos problemas no Outlook.
Um funcionário da Microsoft compartilhou esse problema em um blog em 2004:
Os arquivos DLL injetados em outros aplicativos nunca são seguros, porque o código entra ilegalmente em um processo que não foi projetado, construído ou testado pelo autor desse processo. Você corre o risco de enfrentar problemas de sincronização ou de recursos que nunca encontrou antes, ou esses arquivos agravarão os problemas existentes no aplicativo.
Em outras palavras, Code Injection é um hack ilegal. No entanto, a injeção de código é apenas uma técnica comum encontrada atualmente na plataforma de aplicativos Windows. Ele é usado continuamente em segundo plano no Windows no seu PC.
Como verificar arquivos DLL que foram injetados no aplicativo.
Você pode verificar a injeção de código em seu sistema usando o aplicativo Process Explorer da Microsoft. Basicamente, este aplicativo é uma versão aprimorada do Gerenciador de Tarefas, aprimorada com os recursos adicionais necessários.
Primeiro você baixa e executa o Process Explorer. Em seguida, clique em Exibir > Visualização do painel inferior > DLLs ou pressione Ctrl + D.
![O que é injeção de código no Windows? O que é injeção de código no Windows?]()
Selecione um processo no painel superior e observe o painel abaixo para ver quais arquivos DLL estão sendo carregados. A coluna Nome da empresa fornecerá uma maneira útil de filtrar essa lista.
Por exemplo: quando você vê vários arquivos DLL criados pela Microsoft Corporation, isso é completamente normal porque eles fazem parte do Windows. É completamente normal que arquivos DLL originários das empresas controladoras do aplicativo sejam encontrados nesse aplicativo (por exemplo, "Google Inc" na imagem abaixo).
De acordo com a imagem abaixo, também podemos identificar alguns arquivos DLL criados pela “AVAST Software” nesta lista. Isso mostra que o aplicativo anti-spyware Avast no sistema está injetando código como "Biblioteca de filtros de bloqueio de script Avast" no Chrome.
![O que é injeção de código no Windows? O que é injeção de código no Windows?]()
Mesmo se você encontrar injeção de código em seu sistema, não há muito que você possa fazer além de desinstalar o programa que injeta o código para evitar que ele cause mais problemas. Por exemplo, se o seu Chrome travar com frequência, você poderá verificar se algum programa está injetando código no Chrome e, em caso afirmativo, desinstalar esses programas para evitar que interfiram ainda mais no seu progresso.
Como funciona a injeção de código?
A injeção de código não afeta os aplicativos subjacentes armazenados em sua unidade. Em vez disso, ele espera até que o aplicativo seja iniciado e então injeta código no processo em execução para alterar a forma como o processo opera.
Como todos sabemos, o Windows contém uma série de interfaces de programação de aplicativos (APIs) que podem ser usadas para injeção de código. Um processo pode anexar-se a um processo de destino, alocar memória e, em seguida, gravar uma DLL ou outro código nessa memória e instruir o processo de destino a executar o código. O Windows não impede de forma alguma que processos em seu computador interfiram uns com os outros dessa forma.
Em alguns casos, alguém pode alterar o código base da unidade, por exemplo, substituindo o arquivo DLL que vem com um jogo de PC por outro trecho de código que foi modificado, pode-se trapacear no jogo ou violar direitos autorais. Tecnicamente, isso não é injeção de código porque o código não é injetado em processos em execução, mas em vez disso, o processo é enganado com outro arquivo DLL com o mesmo nome.
Ver mais: