Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
DotNetHookerToolkit — Kit de herramientas de inyección para .NET Framework basado en Frida y hooking de métodos administrados para rastreo en tiempo de ejecución, resolución de puntos de entrada nativos y análisis dinámico de procesos de Windows. | Kitploit
Herramientas/GitHubGitHub/sensepost/dotnethookertoolkit
Análisis Dinámico (Sandboxing)Análisis de CódigoExplotaciónIngeniería InversaDepuradoresPruebas de PenetraciónAnálisis de Binarios
GitHubsensepost/dotnethookertoolkit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

DotNetHookerToolkit

Kit de herramientas de inyección para .NET Framework basado en Frida y hooking de métodos administrados para rastreo en tiempo de ejecución, resolución de puntos de entrada nativos y análisis dinámico de procesos de Windows.

Ver Repositorio
11hace 5 mesesAún no revisado

InjectorCli + ManagedHookHostProj

Este repositorio contiene dos proyectos diseñados para ser usados juntos:

  • InjectorCli: Un .NET Framework 4.8 inyector de consola construido sobre frida-clr (Frida.dll)
  • ManagedHookHostProj: Un .NET Framework 4.8 DLL auxiliar con exportaciones nativas (a través de 3F .NET DllExport) utilizado para resolver métodos administrados a puntos de entrada nativos para que Frida pueda adjuntarse
  • TestTarget32: Un programa de ejemplo .NET Framework 4.8 para probar el hooking.

Estos proyectos están dirigidos a Windows y asumen que estás instrumentando procesos que posees o tienes permiso para probar.

Por qué hay dos proyectos

Frida engancha direcciones de código nativo. En .NET Framework, los métodos administrados se compilan JIT a código nativo, pero:

  • Frida no incluye una API estable de “enganchar método administrado por nombre” para .NET Framework
  • Las direcciones de los métodos no se conocen hasta que el JIT compila el método

Por lo tanto, el patrón general es:

  1. Usa InjectorCli para adjuntar/crear un objetivo y cargar un agente JavaScript de Frida.
  2. Dentro del objetivo, usa ManagedHookHostProj.dll para:
    • Encontrar un método administrado por reflexión
    • Forzarlo a JIT (RuntimeHelpers.PrepareMethod)
    • Devolver el punto de entrada nativo del método (GetFunctionPointer)
  3. De vuelta en el agente, llamar a Interceptor.attach(entrypoint, ...) para rastrear llamadas/registrar argumentos/(opcionalmente) alterar el comportamiento.

Cómo funcionan juntos (Flujo de datos)

InjectorCli (C#)

  • crea Frida.DeviceManager y selecciona un dispositivo
  • crea o se adjunta a un proceso
  • crea un Frida.Script a partir de tu archivo JavaScript y lo carga
  • imprime mensajes del agente a través de script.Message

Agente (JavaScript)

  • puede enganchar APIs Win32 normales directamente (ej. CreateFileW, MessageBoxW)
  • puede opcionalmente Module.load() el DLL auxiliar administrado
  • llama a ayudantes exportados (ej. ResolveMethod) a través de NativeFunction
  • usa búferes UTF-16 gestionados por el ayudante (DescribeObjectUtf16 + FreeUtf16) en lugar del análisis de diseño de cadenas CLR
  • puede consultar diagnósticos del ayudante usando GetLastErrorUtf16 cuando la resolución falla
  • usa las direcciones devueltas para adjuntar enganches

ManagedHookHostProj (biblioteca de clases C# con exportaciones)

  • se ejecuta dentro del CLR del objetivo
  • usa reflexión para localizar el método que deseas por nombre (+ firma de sobrecarga opcional)
  • fuerza la compilación JIT y devuelve la dirección del punto de entrada nativo
  • proporciona exportaciones seguras de lectura/escritura primitivas para valores por referencia (ReadInt32 / WriteInt32 / WriteBool)
  • expone diagnósticos del ayudante locales al hilo (GetLastErrorUtf16, ClearLastError)

Inicio rápido (objetivo de 32 bits)

Para ilustrar cómo funcionan todos estos, asumiremos que el proceso objetivo está compilado para la arquitectura de CPU de 32 bits (WoW64).

1) Construir frida-clr x86

  • Necesitas un Frida.dll x86 para inyectar en un proceso objetivo x86.
  • Comandos de ejemplo (desde un Símbolo del sistema para desarrolladores de 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

Confirma que tienes:

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

2) Construir InjectorCli (x86)

  • Necesitas abrir InjectorCli.sln en Visual Studio y establecer el destino de compilación en Release | x86.

  • O desde un Símbolo del sistema para desarrolladores:

root@kitploit:~
msbuild \InjectorCli\InjectorCli.sln /p:Configuration=Release /p:Platform=x86
  • Si tu Frida.dll no está en dist-x86\bin\Frida.dll, actualiza la referencia en InjectorCli.csproj en consecuencia.

3) (Opcional) Construir ManagedHookHostProj (x86)

  • Necesitas abrir ManagedHookHostProj.sln en Visual Studio y establecer el destino de compilación en Release | x86.

  • O desde un Símbolo del sistema para desarrolladores:

root@kitploit:~
msbuild \ManagedHookHostProj\ManagedHookHostProj.sln /p:Configuration=Release /p:Platform=x86
  • Luego puedes verificar las exportaciones ejecutando el siguiente comando en el Símbolo del sistema para desarrolladores:
root@kitploit:~
dumpbin /exports examples\ManagedHookHostProj\bin\Release\ManagedHookHostProj.dll

Nota: en x86 + StdCall puedes ver nombres de exportación decorados (ej. _ResolveMethod@16). El script del agente proporcionado incluye un mecanismo de respaldo que localiza nombres decorados.

4) Ejecutar: Rastreo nativo (sin necesidad de ayudante administrado)

  • Adjuntar a un PID existente:
root@kitploit:~
FridaClrInjector.exe --pid 1234 --script hooks\hook_createfilew.js
  • Crear suspendido, inyectar, reanudar:
root@kitploit:~
FridaClrInjector.exe --spawn "C:\Windows\SysWOW64\notepad.exe" --script hooks\hook_messagebox.js

5) Ejecutar: Resolución de método administrado + rastreo (usa el DLL auxiliar)

  • Primero debes editar hook_managed.js, estableciendo:

    • helperDllPath a la ubicación del ManagedHookHostProj.dll compilado
    • targetAssemblyPath, targetTypeName, targetMethodName, paramSig
  • Luego ejecuta:

root@kitploit:~
FridaClrInjector.exe --pid 1234 --script "C:\path\to\hook_managed.js"

Limitaciones

  • Inlining: los métodos pequeños pueden ser inlineados en compilaciones Release, y tu enganche no se activará.
  • Sobrecargas: usa paramSig para seleccionar la sobrecarga correcta, de lo contrario podrías enganchar la incorrecta.
  • La arquitectura de bits debe coincidir: el objetivo x86 requiere inyector x86 + Frida.dll x86 + DLL auxiliar x86.
  • Las referencias administradas sin procesar son frágiles: las exportaciones auxiliares heredadas (MakeString/Box*/DescribeObject) deben tratarse solo como compatibilidad.

Más documentación

  • Documentación del inyector:

    • Injector README
    • How-it-works
    • Troubleshooting
  • Documentación del DLL auxiliar:

    • Helper DLL README
    • How-it-works
    • Troubleshooting
  • Documentación del ejemplo Test Target:

    • TestTarget32 README
    • Running test cases
Descargar herramienta