XLM ファイル形式とは?
.xlm は、1992 年に Microsoft Excel 4.0 で導入されたレガシーな Excel マクロ シートです。これは XLM マクロ言語で記述されたスプレッドシート形式のマクロ プログラムを保存します。この言語は、Visual Basic for Applications (VBA) よりも 1 世代前の、数式ベースのスクリプト システムです。各マクロ関数はワークシートのセルを占有するため、マクロは個別のコード モジュールではなく、命令のグリッドとして表示されます。
内部的には、.xlm ファイルは OLE2 Compound File Binary (CFBF) コンテナを使用しており、.xls、.doc、.ppt ファイルと共通の D0 CF 11 E0 というマジックバイト ヘッダーを共有しています。マクロ データは、マクロ シートとしてフラグが立てられた BIFF ストリーム内に存在します。独自のマジックナンバーで .xlm と通常のワークブックを区別することはできないため、識別はその内部ストリーム フラグに依存します。
VBA は Excel 5.0 (1993 年) で XLM に取って代わり、それ以降このフォーマットは凍結されています。Microsoft は後方互換性のために引き続き XLM の実行をサポートしていますが、VBA 専用に調整された防御を回避するためにこのフォーマットを悪用したマルウェア キャンペーン(2018 年〜 2020 年頃)が急増したことを受け、2021 年以降、Excel ではデフォルトで XLM マクロをブロックしています。
今日、XLM ペイロードは、スタンドアロンの .xlm ファイルとしてよりも、.xlsm や .xlsb ワークブック内に埋め込まれた形で現れることが多くなっています。悪意のあるシートは、EXEC や CALL などの Excel 組み込みマクロ関数を呼び出して、VBA フォーカスのスキャナーを起動させることなく任意のシステム コマンドを実行できます。.xlm ファイルは、完全に信頼できるソースからのもののみを開くようにしてください。
セキュリティと安全性
リスク: HIGHExcel 4.0 (XLM) マクロは、十分に文書化されたマルウェア配信ベクターです。VBA よりも古いため、2018 年から 2021 年にかけてウイルス対策ソフトを回避し、バンキング トロイの木馬やランサムウェア ローダーをドロップするために使用されました。通常、ワークブックが開いた瞬間に Auto_Open マクロを介して自動実行されます。ユーザーへのルール:予期しない .xlm (またはマクロが含まれる .xls/.xlsm) では決してマクロを有効にしないでください。Excel のトラスト センターの設定を、Excel 4.0 マクロをブロックするように維持してください(2021 年以降の現在の Excel ではデフォルト)。不審なファイルは保護ビューまたは隔離された仮想マシンで開いてください。アナリストは oletools (olevba) や XLMMacroDeobfuscator を使用して、実行せずにマクロ コードを抽出できます。メールやチャットで届いた単体の .xlm ファイルは、安全が証明されるまで敵対的なものとして扱う必要があります。
形式の詳細
概要XLM ファイルを開くプログラム
技術的詳細
詳細仕様| コンテナ フォーマット | OLE2 Compound File Binary Format (CFBF) |
| 内部ストリーム フォーマット | «Workbook»/«Book» ストリーム内の BIFF (Binary Interchange File Format) レコード |
| バイト順序 | リトルエンディアン |
| エンコーディング | バイナリ (BIFF レコード) |
| マジックバイト | オフセット 0 に D0 CF 11 E0 A1 B1 1A E1 (共通の OLE2/CFBF ヘッダー) |
| MIME タイプ | application/vnd.ms-excel |
| マクロ言語 | Excel 4.0 XLM - 数式ベース、セル常駐型。各マクロ命令はワークシートのセル値 |
| セキュリティ分類 | 高リスク - 2021 年以降、Microsoft Excel では XLM マクロの実行がデフォルトでブロックされています |
| 注目すべき危険な関数 | EXEC, CALL, REGISTER, RUN - マクロ シート内から任意の OS コマンドを呼び出し可能 |
| 開発元 | Microsoft |
| 後継フォーマット | VBA マクロ (.xlsm / .xlsb ワークブック)、Excel 5.0 (1993 年) で導入 |
| サポートされているプラットフォーム | Windows (すべての最新の Excel), macOS (Excel for Mac); LibreOffice Calc での読み取りサポート |
| 一般的なファイル サイズ | 数 KB から数百 KB |
| 圧縮 | なし - BIFF レコードは非圧縮で保存されます |
| 暗号化サポート | オプション。パスワード保護されたワークブックは、OLE2 コンテナの周囲に RC4 または AES 暗号化を使用する場合があります |
| マクロ実行モデル | 専用のマクロ シート タブ内のセル数式として保存されたマクロ。Excel 計算エンジンによって上から下へ評価されます |
| リリース日 | 1992 (Excel 4.0 macro language, .xlm macro-sheet files) |
| 最新バージョン | Excel 4.0 macro language (frozen 1992); never updated - superseded by VBA in Excel 5.0 (1993) |
| 仕様書 | learn.microsoft.com |
XLM の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。XLM ファイルについて最初の質問をしてみましょう。