A injeção de código é comum no Windows. Os aplicativos “injetam” pedaços de seu próprio código em outro processo em execução para modificar seu comportamento. Essa técnica pode ser usada para o bem ou para o mal, mas de qualquer forma pode causar problemas.
A injeção de código também é comumente chamada de injeção de DLL porque o código injetado geralmente está na forma de um arquivo DLL (biblioteca de vínculo dinâmico) . No entanto, os aplicativos também podem injetar outros tipos de código que não são DLLs em um processo.
Índice
A injeção de código é usada para realizar todos os tipos de truques e funcionalidades no Windows. Embora programas legítimos o usem, ele também é usado por malware. Por exemplo:
Essa técnica é usada constantemente por uma ampla variedade de aplicativos no Windows. É a única maneira real de realizar uma variedade de tarefas. Comparado a uma plataforma móvel moderna como o iOS da Apple ou o Android do Google, o desktop Windows é tão poderoso porque oferece esse tipo de flexibilidade aos desenvolvedores.
Claro, com todo esse poder vem algum perigo. A injeção de código pode causar problemas e bugs nos aplicativos. O Google diz que os usuários do Windows que têm código injetado em seu navegador Chrome têm 15% mais chances de travar o Chrome, e é por isso que o Google está trabalhando para bloquear isso. A Microsoft observa que a injeção de código pode ser usada por aplicativos maliciosos para adulterar as configurações do navegador, o que é um dos motivos pelos quais já está bloqueado no Edge.
A Microsoft ainda fornece instruções para verificar se DLLs de terceiros estão carregadas no Microsoft Outlook, pois elas causam muitas falhas no Outlook.
Como um funcionário da Microsoft colocou em um blog de desenvolvedor de 2004:
A injeção de DLL nunca é segura. Você está falando sobre injetar código em um processo que nunca foi projetado, construído ou testado pelo autor do processo e cooptar ou criar um thread para executar esse código. Você corre o risco de criar problemas de tempo, sincronização ou recursos que não existiam antes ou de agravar os problemas que existiam.
Em outras palavras, a injeção de código é uma espécie de hack sujo. Em um mundo ideal, haveria uma maneira mais segura de fazer isso que não causasse instabilidade potencial. No entanto, a injeção de código é apenas uma parte normal da plataforma de aplicativos do Windows hoje. Isso está constantemente acontecendo em segundo plano no seu PC com Windows. Você pode chamá-lo de um mal necessário.
Você pode verificar se há injeção de código em seu sistema com o poderoso aplicativo Process Explorer da Microsoft . É basicamente uma versão avançada do Gerenciador de Tarefas com recursos adicionais.
Baixe e execute o Process Explorer se desejar fazer isso. Clique em Exibir> Exibição do painel inferior> DLLs ou pressione Ctrl + D.
Selecione um processo no painel superior e observe o painel inferior para ver as DLLs carregadas. A coluna “Nome da empresa” fornece uma maneira útil de filtrar essa lista.
Por exemplo, é normal ver aqui uma variedade de DLLs feitas pela “Microsoft Corporation”, já que fazem parte do Windows. Também é normal ver DLLs feitas pela mesma empresa que o processo em questão— “Google Inc.” no caso do Chrome, na imagem abaixo.
Também podemos localizar algumas DLLs feitas pelo “Software AVAST” aqui. Isso indica que o software antimalware Avast em nosso sistema está injetando código como a “biblioteca de filtros de bloqueio de script Avast” no Chrome.
Não há muito que você possa fazer se encontrar injeção de código em seu sistema – além de desinstalar o programa injetando código para evitar que ele cause problemas. Por exemplo, se o Chrome travar regularmente, você pode querer ver se há algum programa injetando código no Chrome e desinstalá-lo para evitar que interfira nos processos do Chrome.
A injeção de código não modifica o aplicativo subjacente em seu disco. Em vez disso, ele espera que o aplicativo seja executado e injeta código adicional nesse processo em execução para alterar como ele funciona.
O Windows inclui uma variedade 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, gravar uma DLL ou outro código nessa memória e, em seguida, instruir o processo de destino a executar o código. O Windows não impede que os processos no seu computador interfiram uns com os outros desta forma.
Para obter mais informações técnicas, confira esta postagem do blog explicando como os desenvolvedores podem injetar DLLs e veja outros tipos de injeção de código no Windows .
Em alguns casos, alguém pode alterar o código subjacente no disco – por exemplo, substituindo um arquivo DLL que vem com um jogo de PC por um modificado para permitir trapaça ou pirataria. Tecnicamente, isso não é “injeção de código”. O código não está sendo injetado em um processo em execução, mas o programa está sendo enganado para carregar uma DLL diferente com o mesmo nome.
Crédito de imagem: Lukatme /Shutterstock.com.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…