Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ReflectiveDLLInjection — Injeção de DLL reflexiva é uma técnica de injeção de bibliotecas na qual o conceito de programação reflexiva é empregado para realizar o carregamento de uma biblioteca a partir da memória em um processo hospedeiro. | Kitploit
Ferramentas/GitHubGitHub/stephenfewer/reflectivedllinjection
Forensia de MemóriaExploraçãoPós-ExploraçãoRed TeamingDesenvolvimento de Payloads
GitHubstephenfewer/reflectivedllinjection

ReflectiveDLLInjection

Injeção de DLL reflexiva é uma técnica de injeção de bibliotecas na qual o conceito de programação reflexiva é empregado para realizar o carregamento de uma biblioteca a partir da memória em um processo hospedeiro.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
3.3k8167há 4 anosRevisado pelo Kitploit

Sobre

A injeção de DLL reflexiva é uma técnica de injeção de bibliotecas na qual o conceito de programação reflexiva é empregado para realizar o carregamento de uma biblioteca a partir da memória em um processo hospedeiro. Como tal, a biblioteca é responsável por carregar a si mesma ao implementar um carregador mínimo de Portable Executable (PE). Ela pode então controlar, com interação mínima com o sistema e o processo hospedeiro, como irá carregar e interagir com o hospedeiro.

A injeção funciona do Windows NT4 até o Windows 8, inclusive, rodando em x86, x64 e ARM, quando aplicável.

Visão geral

O processo de injetar remotamente uma biblioteca em um processo é duplo. Primeiro, a biblioteca que você deseja injetar deve ser gravada no espaço de endereço do processo alvo (doravante referido como processo hospedeiro). Segundo, a biblioteca deve ser carregada nesse processo hospedeiro de forma que as expectativas de tempo de execução da biblioteca sejam atendidas, como resolver suas importações ou realocá-la para um local adequado na memória.

Supondo que temos execução de código no processo hospedeiro e que a biblioteca que desejamos injetar foi gravada em um local arbitrário da memória do processo hospedeiro, a injeção de DLL reflexiva funciona da seguinte forma.

  • A execução é passada, seja via CreateRemoteThread() ou um pequeno shellcode de bootstrap, para a função ReflectiveLoader da biblioteca, que é uma função exportada encontrada na tabela de exportação da biblioteca.
  • Como a imagem da biblioteca atualmente existe em um local arbitrário na memória, o ReflectiveLoader primeiro calculará a localização atual de sua própria imagem na memória para poder analisar seus próprios cabeçalhos para uso posterior.
  • O ReflectiveLoader então analisará a tabela de exportação do kernel32.dll do processo hospedeiro para calcular os endereços de três funções exigidas pelo carregador, a saber, LoadLibraryA, GetProcAddress e VirtualAlloc.
  • O ReflectiveLoader agora alocará uma região contínua de memória na qual procederá a carregar sua própria imagem. A localização não é importante, pois o carregador realocará corretamente a imagem posteriormente.
  • Os cabeçalhos e seções da biblioteca são carregados em seus novos locais na memória.
  • O ReflectiveLoader então processará a cópia recém-carregada da tabela de importação de sua imagem, carregando quaisquer bibliotecas adicionais e resolvendo os endereços de suas respectivas funções importadas.
  • O ReflectiveLoader então processará a cópia recém-carregada da tabela de realocação de sua imagem.
  • O ReflectiveLoader então chamará a função de ponto de entrada de sua imagem recém-carregada, DllMain com DLL_PROCESS_ATTACH. A biblioteca foi agora carregada com sucesso na memória.
  • Finalmente, o ReflectiveLoader retornará a execução ao shellcode de bootstrap inicial que o chamou, ou, se foi chamado via CreateRemoteThread, a thread será encerrada.

Compilação

Abra o arquivo 'rdi.sln' no Visual Studio C++ e compile a solução no modo Release para gerar inject.exe e reflective_dll.dll

Uso

Para testar, use o inject.exe para injetar a reflective_dll.dll em um processo hospedeiro por meio de um ID de processo, por exemplo:

inject.exe 1234

Licença

Licenciado sob uma licença BSD de 3 cláusulas; consulte LICENSE.txt para detalhes.

Baixar ferramenta