Что такое формат файла XLM?
.xlm - это устаревший лист макросов Excel, представленный в Microsoft Excel 4.0 в 1992 году. Он хранит макропрограммы в стиле электронных таблиц, написанные на языке макросов XLM - системе скриптинга на основе формул, которая предшествует Visual Basic for Applications (VBA) на одно поколение Excel. Каждая макрофункция занимает ячейку рабочего листа, что делает макросы видимыми в виде сетки инструкций, а не отдельного модуля кода.
Внутренне файлы .xlm используют контейнер OLE2 Compound File Binary (CFBF), разделяя классический заголовок магических байт D0 CF 11 E0 с файлами .xls, .doc и .ppt. Данные макросов находятся внутри потока BIFF, помеченного как лист макросов; уникального магического числа, отличающего .xlm от обычной рабочей книги, нет, поэтому идентификация зависит от этого внутреннего флага потока.
VBA заменил XLM в Excel 5.0 (1993), и формат с тех пор заморожен. Microsoft по-прежнему поддерживает выполнение XLM для обратной совместимости, но блокирует макросы XLM по умолчанию в Excel начиная с 2021 года после волны кампаний вредоносного ПО (примерно 2018-2020 гг.), которые использовали этот формат для обхода средств защиты, настроенных специально для VBA.
Сегодня XLM-вложения чаще всего встречаются внутри .xlsm или .xlsb рабочих книг, чем в виде отдельных файлов .xlm. Вредоносный лист может вызывать встроенные функции Excel, такие как EXEC и CALL, для выполнения произвольных системных команд без запуска сканеров, ориентированных на VBA. Открывайте файл .xlm только из полностью доверенного источника.
Безопасность и защита
РИСК: HIGHМакросы Excel 4.0 (XLM) - это задокументированный вектор доставки вредоносного ПО. Поскольку они предшествуют VBA, они использовались в 2018-2021 годах для обхода антивирусов и рассылки банковских троянов и загрузчиков рэкейна, обычно с автоматическим запуском через макрос Auto_Open в момент открытия книги. Правила для пользователей: никогда не включайте макросы в .xlm (или .xls/.xlsm, содержащих макросы), которые вы не ожидали; держите Центр управления безопасностью Excel настроенным на блокировку макросов Excel 4.0 (по умолчанию в текущей версии Excel с 2021 года); открывайте подозрительные файлы в защищенном представлении или изолированной ВМ; аналитики могут использовать oletools (olevba) и XLMMacroDeobfuscator для извлечения кода макросов без его выполнения. Отдельный файл .xlm, пришедший по почте/чату, следует считать враждебным, пока не будет доказано обратное.
Детали формата
в двух словахПрограммы, открывающие файлы XLM
Технические подробности
глубокая спецификация| Формат контейнера | Формат OLE2 Compound File Binary (CFBF) |
| Формат внутреннего потока | Записи BIFF (Binary Interchange File Format) внутри потока 'Workbook'/'Book' |
| Порядок байтов | Little-endian |
| Кодировка | Binary (BIFF records) |
| Магические байты | D0 CF 11 E0 A1 B1 1A E1 по смещению 0 (общий заголовок OLE2/CFBF) |
| MIME-тип | application/vnd.ms-excel |
| Язык макросов | Excel 4.0 XLM - на основе формул, residing в ячейках; каждая инструкция макроса - это значение ячейки рабочего листа |
| Классификация безопасности | Высокий риск - выполнение макросов XLM заблокировано по умолчанию в Microsoft Excel с 2021 года |
| Известные опасные функции | EXEC, CALL, REGISTER, RUN - могут вызывать произвольные команды ОС из листа макросов |
| Разработчик | Microsoft |
| Замещен на | Макросы VBA (.xlsm / .xlsb рабочие книги), введены в Excel 5.0 (1993) |
| Поддерживаемые платформы | Windows (все современные версии Excel), macOS (Excel для Mac); чтение поддерживается в LibreOffice Calc |
| Типичный размер файла | Несколько КБ до нескольких сотен КБ |
| Сжатие | Отсутствует - записи BIFF хранятся несжатыми |
| Поддержка шифрования | Опционально; защищенные паролем рабочие книги могут использовать шифрование RC4 или AES вокруг контейнера OLE2 |
| Модель выполнения макросов | Макросы хранятся как формулы ячеек на вкладке листа макросов; вычисляются сверху вниз движком вычислений 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
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах XLM.