O que é injeção de código no Windows?

Índice:

O que é injeção de código no Windows?
O que é injeção de código no Windows?

Vídeo: O que é injeção de código no Windows?

Vídeo: O que é injeção de código no Windows?
Vídeo: TEM UM IPAD ANTIGO? - SAIBA COMO BAIXAR TODOS OS APPS INCOMPATÍVEIS - IPAD 2, 3, 4, MINI 1, 2 E AIR - YouTube 2024, Novembro
Anonim
A injeção de código é comum no Windows. Os aplicativos “injetam” partes de seu próprio código em outro processo em execução para modificar seu comportamento. Esta 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 é comum no Windows. Os aplicativos “injetam” partes de seu próprio código em outro processo em execução para modificar seu comportamento. Esta 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.

Qual injeção de código é usada para

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:

  • Os programas antivírus geralmente injetam código nos navegadores da web. Eles podem usá-lo para monitorar o tráfego de rede e bloquear conteúdo da Web perigoso, por exemplo.
  • Programas maliciosos podem adicionar código ao seu navegador para rastrear melhor sua navegação, roubar informações protegidas, como senhas e números de cartão de crédito, e alterar as configurações do seu navegador.
  • O WindowBlinds da Stardock, que temas da sua área de trabalho, injeta código para modificar a forma como as janelas são desenhadas.
  • As cercas da Stardock injetam código para alterar a maneira como a área de trabalho do Windows funciona.
  • O AutoHotkey, que permite criar scripts e atribuir teclas de atalho para todo o sistema, injeta código para realizar isso.
  • Drivers de gráficos, como os da NVIDIA, injetam DLLs para realizar várias tarefas relacionadas a gráficos.
  • Alguns programas injetam DLLs para adicionar opções de menu adicionais a um aplicativo.
  • As ferramentas de trapaça em jogos para PC muitas vezes injetam códigos nos jogos para modificar seu comportamento e obter uma vantagem injusta sobre os outros jogadores.

A injeção de código é ruim?

Essa técnica é usada constantemente por uma ampla variedade de aplicativos no Windows. É a única maneira real de realizar várias tarefas. Em comparação com uma plataforma móvel moderna como o iOS da Apple ou o Android do Google, a área de trabalho do Windows é tão poderosa porque oferece esse tipo de flexibilidade aos desenvolvedores.

Claro, com todo esse poder vem algum perigo. Injeção de código pode causar problemas e erros em aplicativos. O Google diz que os usuários do Windows que têm código injetado em seu navegador Chrome são 15% mais propensos a experimentar falhas do Google 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 ele já está bloqueado no Edge.

A Microsoft ainda fornece instruções para verificar se as DLLs de terceiros estão carregadas no Microsoft Outlook, pois causam tantas falhas no Outlook.

Como funcionário da Microsoft colocou em um blog de desenvolvedor de 2004:

DLL injection is never safe. You’re talking about squirting code into a process that was never designed, built, or tested by the process’s author, and co-opting or creating a thread to run that code. You run the risk of creating timing, synchronization, or resource issues that weren’t there before or exacerbating issues that were there.

Em outras palavras, injeção de código é uma espécie de invasão. Em um mundo ideal, haveria uma maneira mais segura de conseguir isso que não causasse instabilidade em potencial. No entanto, a injeção de código é apenas uma parte normal da plataforma de aplicativos do Windows hoje em dia. Está constantemente acontecendo em segundo plano no seu PC Windows. Você pode chamar isso de um mal necessário.

Como verificar se há DLLs injetadas

Você pode verificar a 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.

Faça o download e execute o Process Explorer, se você quiser fazer isso. Clique em Ver> Vista inferior do painel> DLLs ou pressione Ctrl + D.

Selecione um processo no painel superior e procure no painel inferior para ver as DLLs que são carregadas. A coluna "Nome da empresa" fornece uma maneira útil de filtrar essa lista.
Selecione um processo no painel superior e procure no painel inferior para ver as DLLs que são carregadas. A coluna "Nome da empresa" fornece uma maneira útil de filtrar essa lista.

Por exemplo, é normal ver várias DLLs criadas pela "Microsoft Corporation" aqui, pois elas fazem parte do Windows. Também é normal ver as DLLs criadas pela mesma empresa que o processo em questão, "Google Inc." no caso do Chrome, na captura de tela abaixo.

Nós também podemos identificar algumas DLLs feitas pelo “AVAST Software” aqui. Isso indica que o software antimalware do Avast em nosso sistema está injetando código como a “biblioteca de filtros do Avast Script Blocking” no Chrome.

Não há muito o que fazer se você encontrar uma injeção de código em seu sistema - além de desinstalar o código de injeção do programa para evitar que ele cause problemas. Por exemplo, se o Chrome trava regularmente, você pode querer ver se há programas injetando código no Chrome e desinstalá-los para impedir que eles violem os processos do Chrome.
Não há muito o que fazer se você encontrar uma injeção de código em seu sistema - além de desinstalar o código de injeção do programa para evitar que ele cause problemas. Por exemplo, se o Chrome trava regularmente, você pode querer ver se há programas injetando código no Chrome e desinstalá-los para impedir que eles violem os processos do Chrome.

Como funciona a injeção de código?

A injeção de código não modifica o aplicativo subjacente em seu disco. Em vez disso, ele aguarda a execução desse aplicativo e injeta código adicional nesse processo em execução para alterar sua função.

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 se anexar a um processo de destino, alocar memória, 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 que os processos do seu computador interfiram uns com os outros dessa maneira.

Para obter mais informações técnicas, confira esta postagem no blog explicando como os desenvolvedores podem injetar DLLs e essa análise em 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 para PC por um modificado para ativar a trapaça ou a pirataria.Isso tecnicamente 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.

Recomendado: