GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • メインページ
  • コミュニティ・ポータル
  • 最近の出来事
  • 新しいページ
  • 最近の更新
  • おまかせ表示
  • 練習用ページ
  • アップロード (ウィキメディア・コモンズ)
  • 特別ページ
  • ヘルプ
  • 利用案内
  • 井戸端
  • お知らせ
  • バグの報告

This view

  • Original page
  • New address

GeezerVison is showing ja.wikipedia.org — Portable Executable - Wikipedia

Portable Executable
拡張子 .acm, .ax, .cpl, .dll, .drv, .efi, .exe, .fon, .mui, .ocx, .scr, .sys, .tsp
MIMEタイプ application/vnd.microsoft.portable-executable[1]
マジック
ナンバー
MZ 0x00(×10) PE 0x00 0x00
開発者 マイクロソフト
種別 バイナリ、実行可能、オブジェクト、共有ライブラリ
派生元 DOS MZ executable
COFF

Portable Executable(PE)は、主にMicrosoft Windows系オペレーティングシステムにおいて実行ファイルやライブラリなどを格納するために用いられるバイナリファイル形式である。

Windows環境における標準的な実行形式として、アプリケーション本体(EXEフォーマット)、ダイナミックリンクライブラリ(DLL)、デバイスドライバなどの配布および起動に利用される。PEファイルには、プログラムコードやデータの配置情報、外部ライブラリの参照情報、アイコンなどのリソースが構造化して記録されており、OSローダがそれらを解釈してメモリ上に展開することで実行が行われる。

また、複数のCPUアーキテクチャに対応する設計を持ち、拡張ファームウェアインターフェイス(EFI)環境などWindows以外の実行基盤でも利用されている[2]。

概要

Windows NTオペレーティングシステムでは、PEはIA-32、IA-64、x86、x86-64 (AMD64/Intel 64)、ARMおよびARM64命令セットアーキテクチャ (ISA) がサポートされている。Windows 2000以前のWindows NTではMIPS、 AlphaおよびPowerPC命令セットアーキテクチャがサポートされていた。PEはWindows CEでも利用されていたため、MIPSのいくつかの種類、ARM (Thumbを含む)、SuperH命令セットアーキテクチャでもサポートが継続されている[3]。

さまざまなCPUアーキテクチャに対応するため、内部に判別用のフラグを持っている。実行時にDLLを動的にリンクし、コンポーネントレベルでのバグフィックス、互換性の維持が行われるようになっている。また、リソース領域にアイコン等を格納でき、GUI上で表示された場合アイコンがグラフィカルに表示され、ソフトウェアが容易に判別できるようにできる。

マイクロソフト製OSとのマルチブート環境の構築を容易にする目的で、x86、x86-64、ARMアーキテクチャにおけるLinuxカーネル実行ファイル(EFI Boot Stub)[4]やブートローダなど、非Windows系OSのシステムファイルの一部でも用いられている。

PEと似たフォーマットとしてELFファイル(LinuxやUnixで利用)や Mach-O (macOSやiOSで利用)がある。

歴史

マイクロソフトはWindows NT 3.1オペレーティングシステムの登場とともにPEフォーマットに移行した。Windows 95/98/ME や Windows 3.1x上のWin32sをはじめとする、その後のWindowsはすべてPEをサポートしている。DOSとNTシステムのEXEフォーマットとの互換性を持たせるため、PE/COFFヘッダーにはDOSプログラムがバイナリの先頭に組み込まれている。PEバイナリをDOS上で起動させると、そのDOSプログラムのほうが実行される。特に指定の無い場合、「This program cannot be run in DOS mode.」のような「DOSでは実行できない」というメッセージが表示するだけのプログラムが組み込まれる[5]。DOSプログラムの後ろに、PE固有の識別子と、COFFに似たデータ構造があり、DOSヘッダによってそのオフセットが指されている。

引き続きファットバイナリの形式である。PEは.NET PE形式や、PE32+ (もしくはPE+)と呼ばれる64ビットバージョン、およびWindows CE形式など、Windowsプラットフォームの変更にも対応し続けている。

対応する命令セットアーキテクチャ

  • x86:i386以降のインテルおよび互換CPUのアーキテクチャ。PEにおいては、その中でも32ビットのコードを対象としている。x86を対象とするWindowsアプリケーションが格納されたPEは、x86版、x86-64版、IA-64版Windowsで直接実行できる。ARM版Windowsにおいてはエミュレーションによって実行できる。Windows NT 4.0においては、Alpha、MIPS、PowerPC版においてエミュレータが存在した[6]。Xboxにおいては、ビルド途中の中間形式として採用されている[7]。i386版のUEFIアプリケーションの記述にも用いられている。
  • x86-64: 64ビット対応のx86命令。x64版Windowsで実行できる。x86-64版のUEFIアプリケーションの記述にも用いられている。
  • IA-64
  • Alpha: Alphaプロセッサ上で動作するWindows NTでのみ実行できる。Alpha版Windowsはすでに開発が終了している。
  • MIPS: Windows CE、Windows NTでサポートされていた。
  • PowerPC: PowerPC版Windows NTでのみ実行できる。Xbox 360でも内部的な形式として用いられている[8]。
  • SH-3/4: Windows CEがサポートするアーキテクチャ。
  • ARM: Windows CE、Windows RT、Windows 10でサポートされている。
  • AArch64 (ARM64): Windows 10でサポートされている。

技術的詳細

→詳細は「en:Portable_Executable § Technical_details」を参照

他のオペレーティングシステムでの利用状況

PEフォーマットはWindowsとのバイナリ互換を謳っているReactOSでも利用されている。過去にはSkyOSやBeOS R3等いくつかのオペレーティングシステムで利用されていたが、SkyOSもBeOSも最終的にはELFへ移行した。

Mono開発環境はMicrosoft .NET Frameworkとのバイナリ互換を謳っており、マイクロソフトの実装と同じPEフォーマットを利用している。

x86 Unix系 オペレーティングシステムでは、Windowsバイナリ(PEフォーマット)はWineを通して実行できる。HX DOS ExtenderもDOS 32ビットバイナリにPEフォーマットを利用しており、一部の既存WindowsバイナリをDOSで実行できるため、DOS版Wineとして利用できる。

IA-32とx86-64のLinuxでは、WindowsのDLLをloadlibraryで利用できる[9]。

Mac OS X 10.5はPEファイルの読み込みと解析が可能だが、Windowsとバイナリ互換はない[10]。

UEFIとEFIファームウェアはPEとWindows ABIをアプリケーションで使っている。

脚注

  1. ↑ Andersson, Henrik (2015年4月23日). “application/vnd.microsoft.portable-executable” (英語). IANA. 2017年3月26日閲覧。
  2. ↑ “UEFI 仕様書 version 2.4”. 2019年7月17日閲覧。,p.18のノートに「このイメージ形式を選択することでUEFIイメージにThumbおよびThumb-2命令セットを含めつつEFIインターフェイス自身をARMモードにする」とある。
  3. ↑ “PE Format (Windows)”. 2017年10月21日閲覧。
  4. ↑ “The EFI Boot Stub”. The Linux Kernel Archives. 2019年7月17日閲覧。
  5. ↑ “PE Format” (2019年3月18日). 2019年7月17日閲覧。 “The linker places a default stub here, which prints out the message "This program cannot be run in DOS mode" when the image is run in MS-DOS.”
  6. ↑ 西川和久 (1996年5月7日). “技術者必見!!Part2 Windows NT 4.0のあまり知られていない事実”. Impress PC Watch. 2019年7月17日閲覧。
  7. ↑ Myria (2004年11月25日). “[PATCH] Xbox PE subsystem support”. Narkive. 2019年7月17日閲覧。 “It is known that Microsoft's own Xbox Development Kit (XDK) compiles developers' games into standard PE format, with subsystem 14. The resulting PE file is later converted to the PE-like "XBE" format.”
  8. ↑ Vanik, Ben (2011年2月28日). “Building an Xbox 360 Emulator, part 3: Feasibility/OS”. Various Oddities. 2019年7月17日閲覧。 “On the 360 these are XEX files, which are packages that contain a bunch of resources detailing a game as well as an embedded PE-formatted EXE/DLL file containing the actual code.”
  9. ↑ https://github.com/taviso/loadlibrary
  10. ↑ Chartier, David (2007年11月30日). “Uncovered: Evidence that Mac OS X could run Windows apps soon”. Ars Technica. 2007年12月3日閲覧。 “... Steven Edwards describes the discovery that Leopard apparently contains an undocumented loader for Portable Executables, a type of file used in 32-bit and 64-bit versions of Windows. More poking around revealed that Leopard's own loader tries to find Windows DLL files when attempting to load a Windows binary.”

関連項目

  • EXE
  • Executable and Linkable Format
  • Mach-O
  • a.out
  • 実行ファイル形式
  • 実行ファイル圧縮
  • アプリケーション仮想化

外部リンク

  • Windows実行可能形式
  • S.S'S HOMEPAGE - 逆アセのスス乂 - MSDN技術資料(PE形式の解説)
  • PECOFF仕様書(英語)
Windows コンポーネント
管理ツール
  • アプリインストーラ
  • コマンドプロンプト
  • コントロールパネル
    • アプレット
  • デバイスマネージャ
  • ディスク クリーンアップ
  • デフラグ
  • Driver Verifier
  • DxDiag
  • イベントビューア
  • IExpress
  • 管理コンソール
  • Netsh
  • パフォーマンスモニタ
  • リソースモニタ
  • 設定
  • Sysprep
  • システム構成
  • システム ファイル チェッカー
  • システム情報
  • システムポリシーエディター
  • システムの復元
  • タスクマネージャ
  • Windows エラー報告
  • Windows Ink
  • Windowsインストーラ
  • PowerShell
  • Windows Update
    • Windows Insider
  • WinRE
  • WMI
  • スキャンディスク
    • CHKDSK
  • 問題の報告と解決
アプリ
  • 3Dビューアー
  • アラーム & クロック
  • 電卓
  • カメラ
  • 外字エディタ
  • Clipchamp
  • Copilot
  • Edge
  • FAX とスキャン
  • フィードバック Hub
  • サポートに問い合わせる
  • 拡大鏡
  • メール/カレンダー
  • 地図
  • メッセージング
  • 映画&テレビ
  • モビリティセンター
  • ナレーター
  • メモ帳
  • OneDrive
  • OneNote
  • ペイント
  • アドレス帳
  • People
  • フォト
  • フォト ビューアー
  • クイック アシスト
  • スマホ同期
  • Snipping Tool
  • 音声認識
  • Sticky Notes
  • Microsoft Store
  • メディア プレーヤー
  • Windows Media Player Legacy
  • サウンド レコーダー
  • WinSAT
  • 文字コード表
  • リモート アシスタンス
  • Windows DVD プレイヤー
シェル
  • Aero
  • ClearType
  • エクスプローラ
  • Windows サーチ
  • スタートメニュー
    • タスクバー
    • 特殊フォルダ
    • 関連付け
    • シェル名前空間
サービス
  • サービス コントロール マネージャー
  • CLFS
  • BITS
  • Wireless Zero Configuration
  • シャドウ コピー
  • 自動再生
  • タスク スケジューラ
  • マルチメディア クラス スケジューラ
ファイルシステム
  • CDFS
  • DFS
  • exFAT
  • FAT12
  • FAT16
  • FAT32
  • IFS
  • NTFS
    • ジャンクション
    • マウント ポイント
    • リパース ポイント
    • シンボリック リンク
    • TxF
    • EFS
  • ReFS
  • UDF
サーバ
  • Active Directory
  • DFS レプリケーション
  • DNS
  • IIS
  • MSDTC
  • NAP
  • AD RMS
  • SharePoint
  • Windows Media Services
  • WSUS
  • 移動ユーザー プロファイル
  • グループ ポリシー
  • ドメイン
  • リモート デスクトップ サービス (Remote Desktop Protocol)
アーキテクチャ
  • NT系のアーキテクチャ
  • スタートアップ プロセス (Vista)
  • CSRSS
  • DLL
  • EXE
  • HAL
  • I/O
  • Ntoskrnl.exe
  • Svchost.exe
  • WinPE
  • NTLDR/ブート マネージャー
  • アイドル プロセス
  • カーネル パッチ保護
  • レジストリ
  • IRP
  • KTM
  • LSASS
  • SMSS
  • Windows リソース保護
  • オブジェクト マネージャー
  • Win32コンソール
  • Winlogon
  • セキュリティアカウントマネージャー(SAM)
  • 論理ディスク マネージャー
セキュリティ
  • Defender
  • ファイアウォール
  • 悪意のあるソフトウェアの削除ツール
  • Safety Scanner
  • DEP
  • MIC
  • UAC
  • UIPI
  • KPP
  • セキュリティとメンテナンス
  • BitLocker
互換性
  • 互換モード
  • COMMAND.COM
  • 仮想DOSマシン
  • WOW
  • WOW64
  • Windows Subsystem for Linux
API
  • .NET Framework
  • COM
    • OLE
    • OLE オートメーション
    • DCOM
    • ActiveX
    • 構造化ストレージ
    • MTS
  • DirectX
  • DWM
  • GDI
  • Protected Media Path
  • PlayReady
  • Windows Imaging Component
  • Windows Imaging Format
  • Windows Script Host
    • VBScript
    • JScript
開発終了
ゲーム
  • リバーシ
  • ピンボール
  • インクボール
  • Chess Titans
  • Mahjong Titans
  • Purble Place
  • スパイダ ソリティア
  • ソリティア
  • ハーツ
  • フリーセル
  • マインスイーパ
アプリ
  • Windowsアドレス帳
  • Anytime Upgrade
  • Windows Calendar(Vista)
  • CardSpace
  • DVD メーカー
  • Grooveミュージック
  • Internet Explorer
  • Windows Journal
  • 画像とFAXビューア(XP)
  • Windows Mail(Vista)
  • Media Center
  • Messenger
  • Microsoft ActiveSync
  • Windows Mobile デバイス センター
  • NetMeeting
  • Outlook Express
  • ペイント3D
  • Cortana
  • Pay
  • Skype
  • WinHelp
  • Write
  • Security Essentials
  • 切り取り & スケッチ
  • デスクトップ ガジェット
  • ハイパーターミナル
  • バックアップと復元センター
  • ファイルマネージャー
  • フォト ギャラリー
  • プログラムマネージャ
  • ミーティング スペース
  • ムービー メーカー
  • リソースメーター
  • ワードパッド
その他
  • UNIX サブシステム
    • Interix
  • Video for Windows
カテゴリ カテゴリ
実行可能ファイル
ファイル形式
  • a.out
  • COFF
  • COM
  • ECOFF
  • ELF
  • Hunk
  • Mach-O
  • MZ
  • NE
  • LE、LX
  • OMF
  • PE (exe)
  • PEF
  • XCOFF
構成部分とプログラム
  • 機械語
  • セグメント
  • シンボルテーブル
  • オブジェクトファイル
  • リンカ
  • ローダ
スタブアイコン

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。

  • 表示
  • 編集
スタブアイコン

この項目は、ソフトウェアに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。

  • 表示
  • 編集
「https://ja.wikipedia.org/w/index.php?title=Portable_Executable&oldid=110334242」から取得
カテゴリ:
  • Microsoft Windows
  • オブジェクトファイルフォーマット
隠しカテゴリ:
  • すべてのスタブ記事
  • コンピュータ関連のスタブ項目
  • ソフトウェア関連のスタブ
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.