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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dotNIET | Kitploit
ツール/GitHubGitHub/synacktiv/dotniet
静的分析リバースエンジニアリングバイナリ解析
GitHubsynacktiv/dotniet

dotNIET

リポジトリを見る
112115年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

.NIET

Alt text

.NIET は IDA Pro プラグインです。その目的は、.NET Native でコンパイルされたバイナリが実行時に解決する欠落シンボル(通常は数千個)をインポートすることです。これらのシンボルは SharedLibrary.dll 内に存在し、この DLL からはエクスポートされません。

.NIET は、以下のプラットフォームで python 3.8 を使用し、IDA Pro 7.5 でテストされています:

  • Windows
  • Linux

このプラグインは現在、以下の .NET Native フレームワーク バージョンをサポートしています:

  • 1.3
  • 1.6
  • 1.7
  • 2.2

別のバージョンに遭遇した場合は、issue を作成してください。

Installation

以下の要素を IDA Pro のプラグインディレクトリにコピーしてください:

root@kitploit:~
dotNIET_plugin.py
dotNIET\

Dependencies

.NIET は、リソースディレクトリを解析するために pefile に依存しています。

pefile は次のようにインストールできます:

root@kitploit:~
pip install pefile

Requirements

シンボルは SharedLibrary.dll からインポートされるため、この DLL は その pdb と一緒に .NIET に提供されなければなりません(プラグインは _NT_SYMBOL_PATH 内で pdb の場所を検索します)。

.NET Native フレームワークのバージョンを特定し、設定されたシンボルパス内に SharedLibrary.dll の pdb が存在することを確認するためのヘルパーが実装されています。

Usage

Alt text

.NIET は、ショートカット Alt-Shift-N または Edit/Plugins メニューから起動できます。

起動時、プラグインは現在のバイナリの .NET Native フレームワークバージョンを特定しようとします。正しいバージョンの SharedLibrary.dll を選択して Run をクリックするだけです。

.NIET は対象 DLL の .NET Native フレームワークバージョンを特定し、バージョンが一致しない場合はメッセージを表示します。通常、Major バージョンと Minor バージョンの番号だけが重要です。

Functioning

.NIET は、.rdata セクション内で .NET Native カスタムインポート記述子テーブルを探します。そのために、Custom Header 構造体の特定のオフセットを読み取り、オーディナル配列を解析します。

このオーディナル配列は、SharedLibrary.dll のカスタムテーブルエントリ内のさまざまな場所を指します。

シンボル解決は、SharedLibrary.dll の pdb を解析するために、IDA Pro のバイナリ idat を通してヘッドレスインスタンスを起動することで実現されます。

Imported symbols naming convention

シンボルは可能であればそのままインポートされますが、いくつかの特殊なケースに遭遇する場合があります:

  • インポートされたアドレスが、オフセットへの jmpstubs シンボルか、シンボルへの単一の jmp 命令であることがあります。それらのシンボル名は、.NIET によって、jmp_ が前置されたターゲット関数名に置き換えられます。
  • .NET Native ランタイムによって解決された一部のアドレスは、複数回のデリファレンス後にシンボルを指します。.NIET がインポートされたアドレスでシンボルを見つけられない場合、見つかるまでデリファレンスを試みます。シンボルが見つかった場合、このシンボル名に deref_X が追加されます。X はデリファレンスの回数です。
  • 一部のアドレスは、EETableSection テーブル内のオフセットを指します。私は .NET Native に不慣れで、これが何であるか(まだ)わからないため、これらのアドレスは EETableSection_XXX としてラベル付けされます。XXX は SharedLibrary.dll 内の EETableSection からのオフセットです。

Known limitations

  • (まだ) macOS 版 IDA Pro では動作しません
  • .NIET は、かなり巨大なバイナリの pdb を解析する必要があるため、かなり遅いです
  • "restore .idata" オプション(一種の「元に戻す」オプション)は、インポートされたシンボルを解除するだけです。IDA はインポート中に名前を自動的に伝播させるため、インポートされたシンボルの痕跡をすべて除去したい場合は、おそらく自動解析を再度実行する必要があります。回避策としては、プラグインを実行する前にデータベースのスナップショットを作成することです。
  • .NIET は SharedLibrary.dll モジュールからのみシンボルを解析しますが、シンボル解決を担当する元のルーチンは他のモジュールも解析できる可能性があります(SharedLibrary.dll モジュール以外で実際に発生するかどうかはわかりません)

Troubleshooting

idat の ログファイル は %tmpdir%/dotNIETlogs.txt に定義されています。

なぜこの名前なのか

.NET Native のリバースエンジニアリングは悪夢だからです。

ツールをダウンロード