
pefile は、Portable Executable (PE) ファイル を解析・操作するためのマルチプラットフォームな Python モジュールです。PE ファイルのヘッダーに含まれるほとんどの情報に加え、すべてのセクションの詳細やデータにアクセスできます。
Windows のヘッダーファイルで定義されている構造体は、PE インスタンスの属性としてアクセス可能になります。フィールドや属性の命名は、可能な限りそれらのヘッダーでの命名規則に従います。便宜上追加されたショートカットのみ、その規則から逸脱します。
pefile を使用するには、PE ファイルのレイアウトに関する基本的な理解が必要です。それを理解していれば、PE ファイル形式のほぼすべての機能を調べることができます。
pip で pefile をインストールするには:
pip3 install pefile
pefile で可能なタスクの一部を以下に示します:
pefile の使用方法を示すコードスニペットについては、使用例 を参照してください。
以下に、さまざまな種類のファイルに対して pefile が生成するダンプの例を示します:
認証されたバイナリ、特に Authenticode 署名を扱うには、プロジェクト verify-sigs を確認してください。
pefile は、毎日数十万の新しい PE ファイルをスキャンするいくつかのパイプラインで動作しており、完璧ではありませんが、長年にわたってかなり堅牢に成長してきました。とはいえ、小さな不具合が時々見つかります。正しく処理されていないように見える PE に遭遇した場合は、ぜひ報告してください!それによって pefile がもう少し強力になります。
pefile は自己完結型です。このモジュールには依存関係がなく、エンディアン非依存であり、Windows、macOS、Linux で動作します。
PE ファイル形式を図示したポスターの PDF:
以下のリンクは、PE 形式とその構造に関する詳細情報を提供します。