Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DotNetHookerToolkit — Fridaベースの.NET Frameworkインジェクターおよびマネージドメソッドフッキングツールキット。ランタイムトレース、ネイティブエントリポイント解決、Windowsプロセスの動的解析用。 | Kitploit
ツール/GitHubGitHub/sensepost/dotnethookertoolkit
動的分析 (サンドボックス)コード分析エクスプロイトリバースエンジニアリングデバッガペネトレーションテストバイナリ解析
GitHubsensepost/dotnethookertoolkit

DotNetHookerToolkit

Fridaベースの.NET Frameworkインジェクターおよびマネージドメソッドフッキングツールキット。ランタイムトレース、ネイティブエントリポイント解決、Windowsプロセスの動的解析用。

リポジトリを見る
115ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

InjectorCli + ManagedHookHostProj

このリポジトリには、一緒に使用するために設計された2つのプロジェクトが含まれています:

  • InjectorCli: .NET Framework 4.8 コンソールインジェクターで、frida-clr (Frida.dll) 上に構築されています
  • ManagedHookHostProj: .NET Framework 4.8 ヘルパーDLLで、ネイティブエクスポート(3F .NET DllExport 経由)を持ち、Fridaがアタッチできるようにマネージドメソッドをネイティブエントリポイントに解決するために使用されます
  • TestTarget32: フックをテストするための**.NET Framework 4.8** プログラムの例

これらのプロジェクトはWindowsを対象としており、自分が所有しているかテストの許可を得ているプロセスをインストルメントすることを前提としています。

なぜ2つのプロジェクトがあるのか

Fridaはネイティブコードアドレスをフックします。.NET Frameworkでは、マネージドメソッドはJITコンパイルされてネイティブコードになりますが:

  • Fridaは.NET Framework向けの安定した「マネージドメソッドを名前でフックする」APIを提供していません
  • メソッドのアドレスはJITがメソッドをコンパイルするまで不明です

したがって、全体的なパターンは次のとおりです:

  1. InjectorCli を使用してターゲットにアタッチ/スポーンし、Frida JavaScriptエージェントをロードします。
  2. ターゲット内部で ManagedHookHostProj.dll を使用して:
    • リフレクションでマネージドメソッドを検索
    • JIT を強制実行 (RuntimeHelpers.PrepareMethod)
    • メソッドのネイティブエントリポイントを返す (GetFunctionPointer)
  3. エージェントに戻り、Interceptor.attach(entrypoint, ...) を呼び出して呼び出しをトレース/引数をログ/(オプションで)動作を変更します。

連携の仕組み(データフロー)

InjectorCli (C#)

  • Frida.DeviceManager を作成し、デバイスを選択します
  • プロセスをスポーンまたはアタッチします
  • JavaScriptファイルから Frida.Script を作成し、ロードします
  • script.Message を介してエージェントからのメッセージを表示します

Agent (JavaScript)

  • 通常のWin32 APIを直接フックできます(例: CreateFileW、MessageBoxW)
  • オプションで Module.load() でマネージドヘルパーDLLをロードできます
  • NativeFunction を介してエクスポートされたヘルパー(例: ResolveMethod)を呼び出します
  • CLR文字列レイアウト解析の代わりに、ヘルパー管理のUTF-16バッファ(DescribeObjectUtf16 + FreeUtf16)を使用します
  • 解決に失敗した場合、GetLastErrorUtf16 を使用してヘルパーの診断情報を問い合わせることができます
  • 返されたアドレスを使用してフックをアタッチします

ManagedHookHostProj (エクスポート付きC#クラスライブラリ)

  • ターゲットのCLR内で実行されます
  • リフレクションを使用して、名前(+ オプションのオーバーロードシグネチャ)で目的のメソッドを見つけます
  • JITコンパイルを強制し、ネイティブエントリポイントアドレスを返します
  • 参照渡し値のための安全なプリミティブ読み取り/書き込みエクスポートを提供します(ReadInt32 / WriteInt32 / WriteBool)
  • スレッドローカルなヘルパー診断情報を公開します(GetLastErrorUtf16、ClearLastError)

クイックスタート(32ビットターゲット)

これらすべての動作を説明するために、ターゲットプロセスが 32ビット (WoW64) CPUアーキテクチャ向けにコンパイルされていると仮定します。

1) frida-clr x86 のビルド

  • x86ターゲットプロセスにインジェクトするためには、x86 の Frida.dll が必要です。
  • コマンド例(Visual Studio Developer Command Promptから):
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

以下が存在することを確認してください:

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

2) InjectorCli をビルドする (x86)

  • Visual Studio で InjectorCli.sln を開き、ビルドターゲットを Release | x86 に設定する必要があります。

  • または Developer Command Prompt から:

root@kitploit:~
msbuild \InjectorCli\InjectorCli.sln /p:Configuration=Release /p:Platform=x86
  • Frida.dll が dist-x86\bin\Frida.dll にない場合は、InjectorCli.csproj 内の参照を適宜更新してください。

3) (オプション) ManagedHookHostProj をビルドする (x86)

  • Visual Studio で ManagedHookHostProj.sln を開き、ビルドターゲットを Release | x86 に設定する必要があります。

  • または Developer Command Prompt から:

root@kitploit:~
msbuild \ManagedHookHostProj\ManagedHookHostProj.sln /p:Configuration=Release /p:Platform=x86
  • その後、Developer Command Prompt で次のコマンドを実行してエクスポートを確認できます:
root@kitploit:~
dumpbin /exports examples\ManagedHookHostProj\bin\Release\ManagedHookHostProj.dll

注: x86 + StdCall では装飾されたエクスポート名(例: _ResolveMethod@16)が表示される場合があります。提供されているエージェントスクリプトには、装飾された名前を見つけるフォールバックが含まれています。

4) 実行: ネイティブトレーシング(マネージドヘルパー不要)

  • 既存のPIDにアタッチ:
root@kitploit:~
FridaClrInjector.exe --pid 1234 --script hooks\hook_createfilew.js
  • サスペンド状態でスポーン、インジェクト、再開:
root@kitploit:~
FridaClrInjector.exe --spawn "C:\Windows\SysWOW64\notepad.exe" --script hooks\hook_messagebox.js

5) 実行: マネージドメソッド解決 + トレーシング(ヘルパーDLLを使用)

  • 最初に hook_managed.js を編集し、次の項目を設定する必要があります:

    • helperDllPath をビルドした ManagedHookHostProj.dll
    • targetAssemblyPath、targetTypeName、targetMethodName、paramSig
  • 次に実行:

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

制限事項

  • インライン化: 小さなメソッドはReleaseビルドでインライン化される可能性があり、フックはトリガーされません。
  • オーバーロード: paramSig を使用して正しいオーバーロードを選択してください。そうしないと、間違ったメソッドをフックする可能性があります。
  • ビット数は一致する必要があります: x86ターゲットにはx86インジェクター + x86 Frida.dll + x86ヘルパーDLLが必要です。
  • 生のマネージド参照は脆弱です: レガシーヘルパーエクスポート(MakeString/Box*/DescribeObject)は互換性のみを目的として扱うべきです。

その他のドキュメント

  • Injector ドキュメント:

    • Injector README
    • 仕組み
    • トラブルシューティング
  • Helper DLL ドキュメント:

    • Helper DLL README
    • 仕組み
    • トラブルシューティング
  • テストターゲットの例 ドキュメント:

    • TestTarget32 README
    • テストケースの実行
ツールをダウンロード