Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
DotNetHookerToolkit — Kit de injeção no .NET Framework e hooking de métodos gerenciados baseado em Frida para rastreamento em tempo de execução, resolução de pontos de entrada nativos e análise dinâmica de processos Windows. | Kitploit
Ferramentas/GitHubGitHub/sensepost/dotnethookertoolkit
Análise Dinâmica (Sandboxing)Análise de CódigoExploraçãoEngenharia ReversaDepuradoresTestes de PenetraçãoAnálise de Binários
GitHubsensepost/dotnethookertoolkit

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 →

DotNetHookerToolkit

Kit de injeção no .NET Framework e hooking de métodos gerenciados baseado em Frida para rastreamento em tempo de execução, resolução de pontos de entrada nativos e análise dinâmica de processos Windows.

Ver Repositório
1118há 7 mesesAinda não revisado
Compartilhar

InjectorCli + ManagedHookHostProj

Este repositório contém dois projetos que foram projetados para serem usados juntos:

  • InjectorCli: Um injetor de console .NET Framework 4.8 construído sobre frida-clr (Frida.dll)
  • ManagedHookHostProj: Uma DLL auxiliar .NET Framework 4.8 com exports nativos (via 3F .NET DllExport) usada para resolver métodos gerenciados para entrypoints nativos, permitindo que o Frida anexe
  • TestTarget32: Um programa de exemplo .NET Framework 4.8 para testar o hooking.

Estes projetos têm como alvo o Windows e assumem que você está instrumentando processos que possui ou tem permissão para testar.

Por Que Existem Dois Projetos

O Frida faz hook em endereços de código nativo. No .NET Framework, os métodos gerenciados são compilados JIT em código nativo, mas:

  • O Frida não possui uma API estável “hook em método gerenciado por nome” para .NET Framework
  • Os endereços dos métodos não são conhecidos até que o JIT compile o método

Portanto, o padrão geral é:

  1. Use InjectorCli para anexar/criar um alvo e carregar um agente JavaScript do Frida.
  2. Dentro do alvo, use ManagedHookHostProj.dll para:
    • Encontrar um método gerenciado por reflexão
    • Forçar a compilação JIT (RuntimeHelpers.PrepareMethod)
    • Retornar o entrypoint nativo do método (GetFunctionPointer)
  3. De volta ao agente, chame Interceptor.attach(entrypoint, ...) para rastrear chamadas/registrar argumentos/ (opcionalmente) alterar o comportamento.

Como Eles Funcionam Juntos (Fluxo de Dados)

InjectorCli (C#)

  • cria Frida.DeviceManager e seleciona um dispositivo
  • cria ou anexa a um processo
  • cria um Frida.Script a partir do seu arquivo JavaScript e o carrega
  • imprime mensagens do agente via script.Message

Agente (JavaScript)

  • pode fazer hook em APIs Win32 normais diretamente (ex.: CreateFileW, MessageBoxW)
  • pode opcionalmente Module.load() a DLL auxiliar gerenciada
  • chama helpers exportados (ex.: ResolveMethod) via NativeFunction
  • usa buffers UTF-16 auxiliares gerenciados (DescribeObjectUtf16 + FreeUtf16) em vez de parsing de layout de strings do CLR
  • pode consultar diagnósticos auxiliares usando GetLastErrorUtf16 quando a resolução falha
  • usa os endereços retornados para anexar hooks

ManagedHookHostProj (biblioteca de classe C# com exports)

  • executa dentro do CLR do alvo
  • usa reflexão para localizar o método desejado pelo nome (+ assinatura de sobrecarga opcional)
  • força a compilação JIT e retorna o endereço do entrypoint nativo
  • fornece exports seguros de leitura/escrita primitivos para valores por referência (ReadInt32 / WriteInt32 / WriteBool)
  • expõe diagnósticos auxiliares com escopo de thread (GetLastErrorUtf16, ClearLastError)

Início Rápido (alvo de 32 bits)

Para ilustrar como tudo funciona, assumiremos que o processo alvo foi compilado para a arquitetura de CPU de 32 bits (WoW64).

1) Compilando frida-clr x86

  • Você precisa de uma Frida.dll x86 para injetar em um processo alvo x86.
  • Comandos de exemplo (a partir de um Prompt de Comando do Desenvolvedor do Visual Studio):
cd C:\path\to\frida-clr
configure.bat --prefix="%CD%\dist-x86" --build=windows-x86-md

cd build

make.bat

make.bat install

Confirme que você tem:

  • dist-x86\bin\Frida.dll (PE32)

2) Compilar InjectorCli (x86)

  • Você precisa abrir InjectorCli.sln no Visual Studio e definir o destino de build como Release | x86.

  • Ou a partir de um Prompt de Comando do Desenvolvedor:

msbuild \InjectorCli\InjectorCli.sln /p:Configuration=Release /p:Platform=x86
  • Se sua Frida.dll não estiver em dist-x86\bin\Frida.dll, atualize a referência em InjectorCli.csproj adequadamente.

3) (Opcional) Compilar ManagedHookHostProj (x86)

  • Você precisa abrir ManagedHookHostProj.sln no Visual Studio e definir o destino de build como Release | x86.

  • Ou a partir de um Prompt de Comando do Desenvolvedor:

msbuild \ManagedHookHostProj\ManagedHookHostProj.sln /p:Configuration=Release /p:Platform=x86
  • Você pode então verificar os exports executando o seguinte comando no Prompt de Comando do Desenvolvedor:
dumpbin /exports examples\ManagedHookHostProj\bin\Release\ManagedHookHostProj.dll

Nota: em x86 + StdCall você pode ver nomes de exports decorados (ex.: _ResolveMethod@16). O script do agente fornecido inclui um fallback que localiza nomes decorados.

4) Executar: Rastreamento nativo (sem helper gerenciado necessário)

  • Anexe a um PID existente:
FridaClrInjector.exe --pid 1234 --script hooks\hook_createfilew.js
  • Crie suspenso, injete, retome:
FridaClrInjector.exe --spawn "C:\Windows\SysWOW64\notepad.exe" --script hooks\hook_messagebox.js

5) Executar: Resolução de método gerenciado + rastreamento (usa a DLL helper)

  • Você deve primeiro editar hook_managed.js, definindo:

    • helperDllPath para o caminho do ManagedHookHostProj.dll compilado
    • targetAssemblyPath, targetTypeName, targetMethodName, paramSig
  • Em seguida, execute:

FridaClrInjector.exe --pid 1234 --script "C:\path\to\hook_managed.js"

Limitações

  • Inlining: métodos pequenos podem ser inlinados em builds Release, e seu hook não será acionado.
  • Sobrecargas: use paramSig para selecionar a sobrecarga correta, caso contrário, você pode fazer hook na errada.
  • A arquitetura deve coincidir: alvo x86 requer injetor x86 + Frida.dll x86 + DLL helper x86.
  • Refs gerenciadas brutas são frágeis: exports auxiliares legados (MakeString/Box*/DescribeObject) devem ser tratados apenas para compatibilidade.

Mais Documentação

  • Documentação do injetor:

    • README do Injetor
    • Como funciona
    • Solução de problemas
  • Documentação da DLL helper:

    • README da DLL Helper
    • Como funciona
    • Solução de problemas de build
  • Documentação do exemplo de alvo de teste:

    • README do TestTarget32
    • Executando casos de teste
Baixar ferramenta