Чтение макросов VBA (или vbaProject.bin) файла Excel без его открытия в MS Excel
Я хотел бы проанализировать файлы Excel, особенно те, которые содержат программы VBA внутри. потому что я планирую запустить этот анализ на большом количестве файлов Excel один за другим, я не хочу открывать эти файлы в Microsoft Excel для их анализа.
Одна трудность состоит в том, чтобы найти и проанализировать макросы VBA файла Excel. Мы знаем, что файл Excel можно преобразовать в файл .zip
, который содержит много .xml
и vbaProject.bin
, вполне очевидно, что макросы VBA находятся в vbaProject.bin
. Однако проблема в том, как его прочитать?
Кто-нибудь знает, есть ли какой-либо инструмент или API для поиска и анализа макросов VBA?
Кто-нибудь знает, есть ли какой-либо инструмент или API для чтения vbaProject.bin
?
Ответы
Ответ 1
Существует очень большой PDF файл от Microsoft, в котором vbaproject.bin
как извлечь функции из vbaproject.bin
:
https://interoperability.blob.core.windows.net/files/MS-OVBA/%5bMS-OVBA%5d.pdf [ Источник ]
Этот ресурс является текущим и доступным по состоянию на 27 июня 2019 года. Событие, при котором эта ссылка устарела (Microsoft периодически меняет структуру своих постоянных ссылок или иным образом изменяет способ реализации своих хранилищ документации/ответов и т.д.), MS-OVBA.pdf
поиск MS-OVBA.pdf
,
Некоторая дополнительная информация, которая может или не может быть дополнительной к вышеупомянутому:
http://www.codeproject.com/Articles/15216/Office-2007-bin-file-format
Ответ 2
Вот статья, обновленная в 2017 году, в которой перечислены несколько инструментов, помогающих с этим. Мне удалось извлечь код VBA из файла vbaProject.bin с помощью инструмента OfficeMalScanner. Изменить: спустя несколько месяцев после успешного использования этого инструмента Windows обнаруживает в нем вредоносное ПО. Ссылка была www точка восстановления точка org/code/OfficeMalScanner.zip. Используйте на свой страх и риск - мне удалось извлечь кучу необходимого кода VBA из проекта после потери исходного кода.