Как проверить .docm-файл на вирусы без Word: Путь от «туалетной бумаги» до VBA-декомпилятора

Получили файл с названием вроде «Счет_на_оплату_12345.docm» от неизвестного отправителя? Или просто открыли вложение на почте, и Word начал моргать красным предупреждением, а вы не хотите рисковать, нажимая «Включить содержание»? Ситуация классическая. Макросы — это самый старый и эффективный способ заразить компьютер, и .docm — это именно тот формат, который Microsoft создал специально для того, чтобы хранить в себе код.

Проблема в том, что обычный пользователь часто попадает в ловушку: ему нужно открыть файл, посмотреть ценник или текст, но он боится запустить вирус. Интегрированный антивирус может молчать, так как макрос еще не запустился, а сам файл выглядит как текст. Открывать его в Word на «живой» машине — значит ставить под удар все пароли, банковские данные и файлы.

Я часто сталкиваюсь с этим в работе. Когда нужно быстро проверить вложение, а Word под рукой нет или использовать его нельзя, на помощь приходят инструменты, которые позволяют «вытряхнуть» содержимое файла, не давая ему шанс на исполнение. В этой статье я расскажу, как действовать как настоящий специалист, разобрав файл на атомы, чтобы понять, что там спрятано, не запуская при этом ни одной строчки вредоносного кода.

Почему именно .docm и чем он отличается от обычного Word

Чтобы понять, как его проверять, нужно знать, что это за зверь. Формат .docx, с которым мы работаем каждый день, — это, по сути, обычный ZIP-архив. Если вы переименуете файл в .zip и откроете его, вы увидите там кучу папок с картинками и одним файлом document.xml, где лежит сам текст.

Формат .docm — это тот же самый ZIP-архив с тем же самым текстом. Единственное и критическое отличие — внутри него лежит еще один файл: word/vbaProject.bin. Этот бинарный файл — ваш «враг» (или друг, если это легальный макрос). Именно он содержит весь код VBA (Visual Basic for Applications). Когда вы открываете .docm в Word и нажимаете «Включить макросы», именно этот файл загружается в память, и код начинает выполняться.

Ваша задача — не дать этому коду исполниться, а просто извлечь его и посмотреть, что он делает. Это называется статическим анализом.

Вариант 1: Самый быстрый и безопасный — метод «Сэндвича»

Допустим, у вас нет специальных утилит, вы в командировке, работаете с чужого ноутбука или просто не хотите ничего устанавливать. Самый простой способ проверить файл — это «распаковать» его, как архив, и посмотреть, есть ли там троян.

Алгоритм действий:

  1. Сделайте копию. Никогда не работайте с оригиналом. Скопируйте файл на рабочий стол.
  2. Переименуйте расширение. Нажмите правой кнопкой мыши на файл и выберите «Переименовать». Замените окончание .docm на .zip. Если система спросит подтверждение, согласитесь.
  3. Попробуйте открыть. Двойным кликом откройте получившийся архив. Windows (или установленный архиватор) должен открыть его как обычную папку.
  4. Найдите «подозреваемого». Зайдите в папку word. Спрашивайте себя: есть ли там файл vbaProject.bin?

Если файла vbaProject.bin нет — значит, макросов в файле нет. Это может быть подмена названия или ошибка экспорта. В таком случае файл безопасен (хотя внутри может быть ссылка на внешний сайт, но это уже другая история).

Если файл vbaProject.bin есть — у нас есть две дороги. Либо мы просто удаляем его (если нам нужен только текст документа) и снова запаковываем всё обратно в .docm. Либо мы пытаемся прочитать его содержимое, чтобы понять, что за код там спрятан.

Важно: Просто наличие бинарного файла не всегда означает вирус. В больших отчетах с автоматическими расчетами макросы могут быть легитимными. Но если «Счет на оплату» требует макросов — это 100% красный флаг.

Вариант 2: Использование специализированных утилит (VBA-декомпиляторы)

Метод с переименованием хорош, но он не дает ответа на главный вопрос: что именно делает этот код? Файл vbaProject.bin — это бинарный (двоичный) файл. Вы не сможете открыть его в Блокноте и прочитать текст — там будет мешанина из символов. Чтобы понять суть, нужен декомпилятор.

В мире информационной безопасности есть несколько проверенных инструментов, которые делают это за секунды. Они не запускают код, а просто «читают» его из файла.

1. OfficeMalScanner (для продвинутых)

Это классический инструмент. Он сканирует документ и выдает отчет, содержит ли он вредоносные паттерны. Он может показать строки кода, которые ищутся по сигнатурам известных вирусов. Это удобно, если вы не хотите разбираться в коде вручную.

2. VBA-декомпиляторы (VbaDecompile и аналоги)

Существует ряд утилит (часто встречаются в составе наборов типа OfficeMalScanner или отдельные скрипты), которые позволяют «вытащить» исходный код VBA в читаемый вид. Просто запускаете утилиту, указываете путь к .docm файлу, и она создает текстовый файл с кодом.

На что смотреть в полученном коде?

Когда вы увидите код, не пугайтесь. Вам не нужно быть программистом, чтобы понять, вирус это или нет. Ищите следующие конструкции:

  • Shell — команда запуска внешних программ. Если вы видите Shell("cmd.exe ...") или запуск exe-файла — это вирус.
  • CreateObject("WScript.Shell") или CreateObject("WScript.Network") — попытка получить контроль над системой.
  • URLDownloadToFile — попытка скачать что-то из интернета на ваш компьютер.
  • RegWrite — попытка прописаться в реестр Windows, чтобы запускаться при старте.
  • Auto_Open или Workbook_Open — это процедуры, которые запускаются сами, как только вы открываете файл (именно то, чего вы боитесь).

Вариант 3: Онлайн-песочницы (Sandboxing)

Если вы боитесь запускать что-то на своем компьютере, даже декомпиляторы, или код слишком сложный и зашифрованный, лучше всего использовать онлайн-песочницы. Это изолированные среды в облаке, где файл запускается, ведет себя как обычно, а вы смотрите за ним со стороны.

Лучшие инструменты для этого:

  • VirusTotal — самый известный сервис. Загружаете файл, и он проверяет его сотней антивирусов. Плюс он показывает отчет о поведении. Ищите раздел «Behavior» или «Details».
  • Hybrid Analysis — дает очень подробный отчет. Он покажет, пытался ли файл подключаться к подозрительным серверам, запускать процессы или менять реестр.
  • Joe Sandbox — мощная песочница, которая отлично разбирается с макросами Office.

Плюсы: Вы вообще не касаетесь файла, риск заражения вашего ПК равен нулю. Вы получаете готовый отчет: «Вирус», «Подозрительно» или «Чисто».

Минусы: Вы загружаете документ на чужой сервер. Если в файле есть конфиденциальные данные (персональные данные, секретные отчеты), использовать этот метод нельзя. Это правило безопасности номер один: конфиденциальное — только локально.

Сравнение методов: Что выбрать в вашей ситуации

Чтобы вам было проще ориентироваться, я составил таблицу. Она поможет быстро принять решение, исходя из ваших условий.

Метод Сложность Риск для ПК Конфиденциальность Для чего лучше всего подходит
Переименование в ZIP Низкая Отсутствует Полная (локально) Быстрая проверка на наличие макросов. Если файла нет — вирус невозможен.
Локальный декомпилятор Средняя Низкий Полная (локально) Анализ кода. Понимание логики вируса. Подходит, если нужно доказать, что это вредонос.
Онлайн-песочница Низкая Нет (но есть риск утечки данных) Низкая (файл уходит в сеть) Глубокий анализ поведения. Если код сложный, зашифрованный или использует обфускацию.
Виртуальная машина (VM) Высокая Отсутствует (если VM настроена верно) Полная Профессиональный анализ. Запуск файла в Word в изолированной среде с отключенным интернетом.

Частые ошибки при проверке макросов

Люди часто совершают одни и те же ошибки, пытаясь «пощупать» вирус. Эти ошибки могут привести к заражению даже при самой осторожной проверке.

Ошибка 1: «А вдруг это просто ошибка?»
Не пытайтесь запустить файл в Word, чтобы убедиться, что он работоспособен. Если файл .docm, он может содержать макрос, который сработает при попытке открыть его в безопасном режиме (хотя это редкость, но бывает). Если вы видите код, который пытается скачать что-то из сети — не запускайте файл ни при каких условиях.

Ошибка 2: Использование «Своего» Word без защиты
Если вы все-таки вынуждены открыть файл в Word (например, у вас нет другого варианта), убедитесь, что у вас включена «Защищенный просмотр». Но помните: некоторые макросы умеют обходить защиту, если пользователь сам нажмет «Включить макросы». Никогда не нажимайте эту кнопку, если не уверены на 100%.

Ошибка 3: Игнорирование обфускации
Современные вирусы часто используют «обфускацию» — намеренное запутывание кода. В декомпиляторе вы можете увидеть странные названия переменных типа Dim x123 as String или много пустых строк. Не ведитесь на это. Если код пытается выполнить команду Shell или Run — это вирус, даже если он выглядит как набор случайных букв.

Ошибка 4: Проверка только антивирусом
Антивирусы часто пропускают новые макросы, особенно если они написаны «с нуля» (хаки-скрипты). Не надейтесь слепо на защиту. Если файл пришел от неизвестного — проверяйте его вручную (через ZIP или песочницу).

Сценарии: Как действовать в конкретных случаях

Давайте разберем реальные ситуации, с которыми вы можете столкнуться, и выберем для них лучшее решение.

Ситуация 1: «Мне нужно просто прочитать текст, макросы мне не нужны»
Если вам прислали .docm, но вы хотите увидеть только текст, самый простой путь — переименовать файл в .zip, открыть его, зайти в папку word, удалить файл vbaProject.bin, сохранить архив и переименовать обратно в .docm. После этого открывайте файл в Word. Макросов больше не будет, а текст останется нетронутым. Это безопасно и быстро.

Ситуация 2: «Файл от бухгалтера, но я не знаю, доверять ли ему»
Здесь нужен баланс. Бухгалтер мог случайно передать файл с макросом. Используйте локальный декомпилятор. Если видите код, который просто открывает возможности Excel (например, Application.ScreenUpdating = False) — это нормально. Если видите попытки скачать файлы или запустить PowerShell — это атака. В сомнительных случаях лучше позвонить отправителю и спросить: «Ты скинул макрос?». Это проще, чем чистить компьютер.

Ситуация 3: «Это подозрительный файл (фишинг), нужно доказать его вредность»
Если вы работаете в компании и нужны доказательства для службы безопасности, или вы просто хотите убедиться, что это 100% вирус, используйте онлайн-песочницу (Hybrid Analysis, VirusTotal). Полученный отчет можно отправить коллегам или в техподдержку. Это самый надежный способ получить объективную оценку.

Ситуация 4: «Файл содержит личные данные, и я не могу его отправлять в сеть»
Тогда онлайн-сервисы отпадают. Единственный вариант — локальная проверка через ZIP-метод (для удаления макроса) или использование декомпилятора на изолированном компьютере (или виртуальной машине). Если у вас нет опыта, лучше просто не открывать файл и удалить его. Личные данные не стоят риска.

Как лучше всего сделать: Итоговые рекомендации

Если вы хотите действовать профессионально и безопасно, придерживайтесь следующего алгоритма:

  • Шаг 1. Оценка источника. От кого файл? Если это клиент, который всегда шлёт .docx, а тут вдруг .docm — это повод насторожиться.
  • Шаг 2. Быстрая проверка (ZIP). Переименуйте в .zip. Если нет vbaProject.bin — файл чист. Если есть — переходите к шагу 3.
  • Шаг 3. Анализ кода. Если файл не содержит конфиденциальной информации, используйте онлайн-песочницу. Если содержит — используйте локальный декомпилятор.
  • Шаг 4. Прямой контакт. Если код выглядит подозрительно, но вы не уверены — свяжитесь с отправителем. Часто это просто ошибка.
  • Шаг 5. Уничтожение. Если подтвердилось, что это вирус — удалите файл и очистите корзину. Не пытайтесь его «лечить» или изучать глубже, если у вас нет соответствующего опыта.

Главное правило: никогда не открывайте .docm файл, если вы не готовы к тому, что он может запустить код. Лучше потратить 2 минуты на переименование в ZIP, чем потом тратить дни на восстановление системы и паролей.

Помните, что безопасность — это не наличие антивируса, а привычка думать перед тем, как нажать кнопку. Используйте эти простые методы, и вы сможете без страха работать с любыми файлами, даже если Word у вас под рукой нет.

Важное примечание: Данная статья носит ознакомительный характер. Описанные методы анализа могут быть использованы как для защиты, так и для исследования вредоносного ПО. Если вы не являетесь специалистом в области информационной безопасности, не рекомендуется самостоятельно запускать подозрительные файлы даже в изолированных средах без консультации с профильными экспертами. При обнаружении кибератак или утечек данных необходимо обратиться в специализированные службы безопасности.

Оцените статью
PEFile — Безопасность и технологии простым языком