IronPEは、x86およびx64のPEファイルの両方に対応したRustで記述された最小限のWindows PEマニュアルローダーです。IronPEの目標は、Windowsがポータブル実行可能ファイルを内部的にどのようにロードするかを探索し、このプロセスがRustでどのように実装できるかを実証することです。
以下を理解するのに役立つように設計されています:
- Windows PEの内部構造
- マニュアルローディング技術
- リバースエンジニアリングの概念
機能
- マニュアルPEローディング
- セクションマッピング
- ベースリロケーション
- インポート解決
- メモリからのPE実行
- x86およびx64 PEサポート
仕組み
IronPEは、メモリからPEファイルを実行するために、以下のステップを実行します:
- PEファイルをメモリに読み込む
- PEヘッダーを解析する
VirtualAllocを使用してメモリを割り当てる- PEヘッダーとセクションをコピーする
- ベースリロケーションを適用する
LoadLibraryとGetProcAddressを使用してインポートを解決する- 実行をOriginal Entry Point(OEP)に転送する
このプロセスはWindows PEローダーの動作を模倣しています。
x64 PEはx86ローダーでロードできず、その逆も同様です。
ダウンロード
翻訳元: https://meterpreter.org/ironpe-rust-windows-manual-pe-loader-guide/
ソース: meterpreter.org