COM ファイル形式とは?
.com ファイルは単純な実行バイナリであり、パーソナルコンピュータにおける最も古いプログラム形式の一つです。Digital Research 社の CP/M オペレーティングシステムで誕生し、その後 MS-DOS に引き継がれました。複数のメモリセグメントや再配置テーブルをサポートする .exe 形式とは異なり、.com プログラムはファイルヘッダーのない生のフラットバイナリです。すべてのバイトは、単一の 64 KB リアルモードセグメント内のオフセット 0x0100 に直接メモリロードされ、即座に実行されます。このアーキテクチャ上の制約により、.com ファイルのサイズが約 64 KB を超えることはありません。
より汎用的な .exe 形式に補完されながらも、.com は MS-DOS 時代を通じて、小さなユーティリティ、コマンドラインツール、TSR プログラム(常駐プログラム)として実用的かつ広く使用され続けました。32ビット版 Windows では NTVDM サブシステムが .com ファイルを透過的に実行していましたが、64ビット版 Windows からは NTVDM が削除されたため、現代の Windows でのネイティブ実行には DOSBox などのエミュレータが必要です。
.com 拡張子は、インターネットのトップレベルドメイン名である .com とは一切関係ありません。この名称の一致は、歴史的にマルウェアの作成者によって悪用されてきました。実行可能な .com ファイルをリンクやテキストに見せかけることで、この形式はよく知られたソーシャルエンジニアリングの攻撃手法となっています。
セキュリティと安全性
リスク: HIGHCOM ファイルは実行コードです。歴史的に DOS マルウェアの主要な運搬役でした(ブートセクタウイルスはしばしば .com 感染ファイルをドロップしました)。現代の 64ビット Windows ではネイティブに実行できないため、実質的な安全障壁となっていますが、32ビットシステムや DOS エミュレータ内では制限なく実行されます。予期せず受信した COM ファイルは決して実行しないでください。エミュレータで起動する前にアンチウイルスでスキャンしてください。特に、ウェブユーザーが .com(ドメイン)と .com(実行ファイル)を混同し、ウェブページだと思って実行ファイルをダウンロードしてしまうリスクがあります。
形式の詳細
概要- Windows Component Object Model 登録スタブ - 稀なケース。一部の非常に古い Windows COM サーバー自己登録ユーティリティで .com 拡張子が使用されていました。
- ネットワークコマンドスクリプト (Cisco IOS 等) - 一部の組み込み/ネットワークデバイスで、ファームウェアやコマンドスクリプトに .com が使用されます。DOS とは無関係です。
COM ファイルを開くプログラム
技術的詳細
詳細仕様| エンコーディング | 生のバイナリマシンコード (x86 リアルモード) |
| バイト順序 | リトルエンディアン (x86) |
| ファイルヘッダー | なし - ヘッダー、再配置テーブル、セグメント記述子のないフラットバイナリ |
| ファイルシグネチャ | なし - 拡張子のみで識別。最初のバイトは通常 JMP オペコード(0xEB または 0xE9)ですが、必須ではありません |
| ロードアドレス | セグメント:0x0100 にロード。プログラムセグメントプレフィックス (PSP) がセグメントの 0x0000-0x00FF バイトを占有 |
| メモリモデル | CS = DS = ES = SS がすべて同じ 64 KB リアルモードセグメントを指す - セグメント分離なし |
| 最大ファイルサイズ | ~65,280 バイト(64 KB セグメントから 256バイトの PSP と最小スタック割り当てを引いたもの) |
| MIME タイプ | application/x-msdos-program |
| 64ビット Windows サポート | ネイティブサポートなし - NTVDM(16ビットサブシステム)が 64ビット Windows から削除。DOSBox または DOSBox-X を使用 |
| CP/M の継承 | 形式は Digital Research CP/M (1974) で誕生し、MS-DOS 1.0 (1981) に変更なしで採用されました |
| 後継形式 | 64 KB を超えるプログラムは .exe、Windows コンソールスクリプトは .cmd / .bat |
| セキュリティ上の注意 | 歴史的に主要なマルウェアの媒介でした。構造を壊さずに簡単に実行・修正が可能で、ドメイン形式のファイル名に偽装されることが一般的です |
| オペレーティングシステム | MS-DOS, PC DOS, FreeDOS, Windows 32ビット (NTVDM 経由), CP/M。現代では DOSBox/DOSBox-X |
| リリース日 | 1974 (CP/M); MS-DOS 1.0, 1981 |
| 最新バージョン | No versioning - raw binary format unchanged |
COM の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。COM ファイルについて最初の質問をしてみましょう。