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

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
1166 mesi faNon ancora revisionato
Condividi

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.
  • 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)
  • 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