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
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

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 →

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
116há 6 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.
  • 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)
  • 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):
    root@kitploit:~
    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:

    root@kitploit:~
    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:

    root@kitploit:~
    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:
    root@kitploit:~
    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:
    root@kitploit:~
    FridaClrInjector.exe --pid 1234 --script hooks\hook_createfilew.js
    
    • Crie suspenso, injete, retome:
    root@kitploit:~
    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:

    root@kitploit:~
    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