Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
NativePe — Object Pascal(Delphi)ライブラリ。Windows PEファイルの解析、マッピング、読み込み、ダンプを行い、リロケーション、インポート、TLS、リモートプロセスのメモリ読み取りをサポートします。 | Kitploit
ツール/GitHubGitHub/habanada/nativepe
動的分析 (サンドボックス)メモリフォレンジックリバースエンジニアリングマルウェア分析ユーティリティとフレームワークバイナリ解析ペイロード開発バイナリエクスプロイト
GitHubhabanada/nativepe

NativePe

Object Pascal(Delphi)ライブラリ。Windows PEファイルの解析、マッピング、読み込み、ダンプを行い、リロケーション、インポート、TLS、リモートプロセスのメモリ読み取りをサポートします。

リポジトリを見る
181日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

NativePe

NativePe

NativePeは、Delphi向けにObject Pascalで書かれたWindows Portable Executableライブラリです。

本プロジェクトは、PEのパース、マッピング、ロード、リロケーション、インポートとエクスポートの処理、ダンプ、プロセスメモリの読み取り、および関連するWindows内部構造に焦点を当てています。同一のソースツリーからWin32とWin64の両方のビルドをサポートします。

NativePeは研究プロジェクトです。通常の、珍しい、不正な形式の、そして敵対的なPEファイルの大規模なセットに対してテストされていますが、あらゆるPEファイルを正しく処理できると主張するものではありません。

動機

動機の一部は個人的なものです。私は2000年代初頭にDelphiを使っていましたが、現代のDelphiで低レベルなWindows開発を再訪したいと考えました。

NativePeはまた、Object Pascalが今でもPEやWindows内部構造の研究に使用できることを示すための実践的な実験でもあります。

起源とlibpeconvとの関係

NativePeのPE処理コアは、hasherezadeによるlibpeconvのObject Pascalへの移植/再実装です。

コードはObject Pascalで書き直されていますが、コアモジュールの分割や、多くの公開操作、検証パス、制御フローの決定、フォールバック規則、診断、テストはlibpeconvのソースに由来しています。したがってNativePeは、移植したlibpeconvの機能についてクリーンルーム実装や独立設計された実装ではありません。

現在の差分ハーネスが使用しているlibpeconvのリビジョンはコミット0fc25f680e03699d33ef3b2034a6724365f3d1a4です。

libpeconvを公開してくれたhasherezadeに感謝します。ソースレベルの関係についてはdocs/PROVENANCE.mdを、帰属表示とライセンス通知についてはTHIRD-PARTY-NOTICES.mdを参照してください。

ここで独自のもの

NativePeはlibpeconvの単なる構文翻訳ではありません。現在のプロジェクトは、移植されたコアの周囲にNativePe固有の機能とDelphi/Windows統合を追加しています。

これにはAPI Set解決、プラグイン可能なWinAPI/NTAPI/直接システムコールのメモリプロバイダ、セキュリティクッキーの初期化、PEリサイクルヘルパー、および関連する統合コードが含まれます。これらの部分には、固定されたlibpeconvコアに対応する直接のソースモジュールはありません。

リポジトリにはNativePe固有のDelphiテストプロジェクト、実世界のフィクスチャ、コーパスツール、およびWindows統合テストも含まれています。

主な機能

  • PE32およびPE32+のヘッダーとセクションの処理
  • RAWから仮想、および仮想からRAWへの変換
  • ベースリロケーション
  • 通常および遅延ロードのインポート処理
  • エクスポートの検索とエクスポートのマッピング
  • TLSのパースとコールバック処理
  • リソースディレクトリのパース
  • 例外ディレクトリの処理
  • Load Configのパース
  • PEBベースのモジュール検索
  • 手動PEロード
  • リモートプロセスのPE読み取りとダンプ
  • インポートの再構築と修復ヘルパー
  • コードケーブの発見とPEリサイクルヘルパー
  • IATおよびローカル関数リダイレクションヘルパー
  • オプションのAPI Set解決
  • オプションのセキュリティクッキー初期化
  • プラグイン可能なメモリアクセス層
  • WinAPIメモリバックエンド
  • ntdll経由のNTAPIメモリバックエンド
  • Win64直接システムコールメモリバックエンド
  • Win32およびWin64ターゲット

詳細はdocs/FEATURES.mdにあります。

メモリバックエンド

NativePeはTNativePeMemoryProviderを通じて、PEロジックと選択されたオペレーティングシステムのメモリ操作を分離しています。

現在の組み込みバックエンドは次のとおりです:

  • TWinApiMemoryProvider
  • TNtApiMemoryProvider
  • Win64上のTSyscallMemoryProvider

既存のフックパスは、直接システムコールベースのメモリ保護のためのオプションのUseSyscalls互換スイッチも保持しています。

docs/MEMORY-PROVIDERS.mdを参照してください。

テスト

NativePeはいくつかのテスト層を使用しています:

  • DUnitXの回帰テストと統合テスト
  • 不正な形式のPEテスト
  • 実際のWindowsプロセスとローダーのテスト
  • 分離されたコーパスランナー
  • libpeconvの忠実性と差分チェック

2026年9月25日に文書化された差分実行では、30,159の同一コーパスパスをNativePeと固定されたlibpeconvハーネスで処理しました。結果レベルでは、30,147のパスが一致し、12が異なりました。その実行でNativePeはワーカークラッシュを記録しませんでしたが、libpeconvハーネスは6件を記録しました。これらの結果はこのコーパスとこれらのハーネスにのみ当てはまり、一般的な優位性を確立するものではありません。

この実行はベンチマーク品質のパフォーマンス実行ではなかったため、そのタイミングデータはパフォーマンスの主張には使用されません。外部コーパスとマルウェアサンプルはNativePeに同梱されていません。

docs/TESTING.md、docs/CORPUS-RESULTS.md、およびdocs/LIBPECONV-COMPARISON.mdを参照してください。

ビルド

NativePeはDelphi 12 Athensで開発されています。

NativePe.groupprojを開いて、含まれているデモ、テスト、コーパスランナー、プロセスダンプツール、および実世界のテストプロジェクトをビルドします。

メインライブラリのソースはsrcの下にあります。プロジェクトは、Delphiのユニット検索パスにsrcを追加し、必要なNativePe.*ユニットを参照することで、NativePeを直接使用することもできます。

含まれているプロジェクトはWin32とWin64の両方をサポートしています。

最小限のローダー例

次の例は、PEイメージをマップし、リロケーションを適用し、インポートを解決します。PEエントリポイントは呼び出しません。

program PeLoaderMinimal;

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  NativePe.BufferUtil,
  NativePe.PeLoader;

var
  Image: TAlignedBuf;
  ImageSize: NativeUInt;

begin
  if ParamCount <> 1 then
    Halt(1);

  Image := LoadPeExecutable(ParamStr(1), ImageSize);
  if Image = nil then
    Halt(1);
  try
    Writeln('Loaded at: 0x', IntToHex(NativeUInt(Image), SizeOf(Pointer) * 2));
    Writeln('Virtual size: ', ImageSize);
  finally
    FreePeBuffer(Image, ImageSize);
  end;
end.

Delphiのユニット検索パスにsrcを追加し、PEファイルを唯一の引数としてプログラムを実行します。

ツールの実行

リポジトリにはいくつかの実行ファイルとヘルパースクリプトが含まれています。主なエントリポイントはdocs/BINARIES.mdに文書化されています。

重要: NativePeDemo.exeは、指定されたPEファイルをロードして実行します。信頼できるテストファイルでのみ使用してください。コーパスランナーは静的PE処理用に設計されており、PEエントリポイントやTLSコールバックを意図的に実行することはありません。

ドキュメント

  • ドキュメント索引
  • ソースの来歴
  • 機能
  • メモリプロバイダ
  • テスト
  • バイナリとコマンドラインの使用法
  • 実世界のテスト
  • コーパス結果
  • NativePeとlibpeconvの比較
  • サードパーティ通知

プロジェクトの状況

NativePeは研究およびテストプロジェクトとして活発に使用されています。新しいPEのエッジケースが見つかるにつれて、APIと実装の詳細はまだ変更される可能性があります。

広範なテストはリスクを軽減しますが、完全な正確性の証明ではありません。信頼できないPEファイルは信頼できない入力として扱い、マルウェアを扱う際には適切な分離を使用してください。

ライセンス

NativePeの独自の貢献はMIT Licenseの下でリリースされています。

サードパーティプロジェクトに由来するコードは、THIRD-PARTY-NOTICES.mdに記載されている該当する上流の通知とライセンス条件を保持します。

ツールをダウンロード