Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DotNetHookerToolkit — Toolkit basato su Frida per iniezione in .NET Framework e hooking di metodi gestiti, per tracciamento runtime, risoluzione di punti di ingresso nativi e analisi dinamica di processi Windows. | Kitploit
Strumenti/GitHubGitHub/sensepost/dotnethookertoolkit
Analisi Dinamica (Sandboxing)Analisi del CodiceExploitReverse EngineeringDebuggerPenetration TestingAnalisi di Binari
GitHubsensepost/dotnethookertoolkit

DotNetHookerToolkit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Toolkit basato su Frida per iniezione in .NET Framework e hooking di metodi gestiti, per tracciamento runtime, risoluzione di punti di ingresso nativi e analisi dinamica di processi Windows.

Vedi Repository
115 mesi faNon ancora revisionato

InjectorCli + ManagedHookHostProj

Questo repository contiene due progetti progettati per essere utilizzati insieme:

  • InjectorCli: Un injector console .NET Framework 4.8 basato su frida-clr (Frida.dll)
  • ManagedHookHostProj: Una DLL helper .NET Framework 4.8 con esportazioni native (tramite 3F .NET DllExport) utilizzata per risolvere metodi gestiti in entry point nativi in modo che Frida possa collegarsi
  • TestTarget32: Un programma di esempio .NET Framework 4.8 per testare l'hooking.

Questi progetti hanno come target Windows e presuppongono che tu stia instrumentando processi di tua proprietà o per i quali hai il permesso di testare.

Perché Ci Sono Due Progetti

Frida esegue l'hook di indirizzi di codice nativo. In .NET Framework, i metodi gestiti vengono compilati JIT in codice nativo, ma:

  • Frida non fornisce un'API stabile del tipo "hook metodo gestito per nome" per .NET Framework
  • Gli indirizzi dei metodi non sono noti fino a quando il JIT non compila il metodo

Quindi il pattern generale è:

  1. Usa InjectorCli per collegarti/avviare un target e caricare un agente JavaScript di Frida.
  2. All'interno del target, usa ManagedHookHostProj.dll per:
    • Trovare un metodo gestito tramite reflection
    • Forzarlo alla compilazione JIT (RuntimeHelpers.PrepareMethod)
    • Restituire l'entry point nativo del metodo (GetFunctionPointer)
  3. Nell'agente, chiama Interceptor.attach(entrypoint, ...) per tracciare le chiamate/loggare gli argomenti/(opzionalmente) alterare il comportamento.

Come Lavorano Insieme (Flusso Dati)

InjectorCli (C#)

  • crea Frida.DeviceManager e seleziona un dispositivo
  • genera o si collega a un processo
  • crea un Frida.Script dal tuo file JavaScript e lo carica
  • stampa i messaggi dall'agente tramite script.Message

Agente (JavaScript)

  • può eseguire l'hook di API Win32 normali direttamente (es. CreateFileW, MessageBoxW)
  • può opzionalmente Module.load() la DLL helper gestita
  • chiama gli helper esportati (es. ResolveMethod) tramite NativeFunction
  • utilizza buffer UTF-16 gestiti dall'helper (DescribeObjectUtf16 + FreeUtf16) invece di analizzare il layout delle stringhe CLR
  • può interrogare le diagnostiche dell'helper usando GetLastErrorUtf16 quando la risoluzione fallisce
  • utilizza gli indirizzi restituiti per collegare gli hook

ManagedHookHostProj (libreria di classi C# con esportazioni)

  • viene eseguita all'interno del CLR del target
  • utilizza la reflection per individuare il metodo desiderato per nome (+ firma di overload opzionale)
  • forza la compilazione JIT e restituisce l'indirizzo dell'entry point nativo
  • fornisce esportazioni sicure di lettura/scrittura di primitivi per valori by-ref (ReadInt32 / WriteInt32 / WriteBool)
  • espone diagnostiche helper thread-local (GetLastErrorUtf16, ClearLastError)

Avvio Rapido (target a 32 bit)

Per illustrare come tutto funziona, supponiamo che il processo target sia compilato per l'architettura 32-bit (WoW64).

1) Compilare frida-clr x86

  • Hai bisogno di una Frida.dll x86 per iniettarla in un processo target x86.
  • Comandi di esempio (da un prompt dei comandi di Visual Studio Developer):
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

Conferma di avere:

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

2) Compilare InjectorCli (x86)

  • Devi aprire InjectorCli.sln in Visual Studio e impostare il target di compilazione su Release | x86.

  • Oppure da un prompt dei comandi Developer:

root@kitploit:~
msbuild \InjectorCli\InjectorCli.sln /p:Configuration=Release /p:Platform=x86
  • Se la tua Frida.dll non si trova in dist-x86\bin\Frida.dll, aggiorna il riferimento in InjectorCli.csproj di conseguenza.

3) (Opzionale) Compilare ManagedHookHostProj (x86)

  • Devi aprire ManagedHookHostProj.sln in Visual Studio e impostare il target di compilazione su Release | x86.

  • Oppure da un prompt dei comandi Developer:

root@kitploit:~
msbuild \ManagedHookHostProj\ManagedHookHostProj.sln /p:Configuration=Release /p:Platform=x86
  • Puoi quindi verificare le esportazioni eseguendo il seguente comando nel prompt dei comandi Developer:
root@kitploit:~
dumpbin /exports examples\ManagedHookHostProj\bin\Release\ManagedHookHostProj.dll

Nota: su x86 + StdCall potresti vedere nomi di esportazione decorati (es. _ResolveMethod@16). Lo script agente fornito include un fallback che individua i nomi decorati.

4) Esecuzione: Tracciamento nativo (nessun helper gestito necessario)

  • Collega a un PID esistente:
root@kitploit:~
FridaClrInjector.exe --pid 1234 --script hooks\hook_createfilew.js
  • Avvia sospeso, inietta, riprendi:
root@kitploit:~
FridaClrInjector.exe --spawn "C:\Windows\SysWOW64\notepad.exe" --script hooks\hook_messagebox.js

5) Esecuzione: Risoluzione metodo gestito + tracciamento (usa la DLL helper)

  • Devi prima modificare hook_managed.js, impostando:

    • helperDllPath sul percorso della ManagedHookHostProj.dll compilata
    • targetAssemblyPath, targetTypeName, targetMethodName, paramSig
  • Quindi esegui:

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

Limitazioni

  • Inlining: i metodi piccoli potrebbero essere inlined nelle build Release e il tuo hook non si attiverà.
  • Overload: usa paramSig per selezionare l'overload corretto, altrimenti potresti eseguire l'hook su quello sbagliato.
  • La bitness deve corrispondere: il target x86 richiede injector x86 + Frida.dll x86 + DLL helper x86.
  • I riferimenti gestiti raw sono fragili: le esportazioni helper legacy (MakeString/Box*/DescribeObject) dovrebbero essere trattate solo per compatibilità.

Documentazione Aggiuntiva

  • Documentazione Injector:

    • Injector README
    • Come funziona
    • Risoluzione dei problemi
  • Documentazione DLL helper:

    • Helper DLL README
    • Come funziona
    • Risoluzione dei problemi
  • Documentazione Test Target di esempio:

    • TestTarget32 README
    • Esecuzione dei casi di test
Scarica lo strumento