Чтение макросов 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?


person SoftTimur    schedule 08.07.2013    source источник
comment
Итак, у вас получилось? У меня похожая проблема, но мне тоже нужно немного ее отредактировать :) Просто интересно, можете ли вы помочь хотя бы прочитать ее   -  person Sergius    schedule 17.02.2020


Ответы (2)


Существует очень большой PDF-файл от Microsoft, в котором описано, как извлекать функции из vbaproject.bin:

https://interoperability.blob.core.windows.net/files/MS-OVBA/%5bMS-OVBA%5d.pdf [Источник]

Этот ресурс актуален и доступен по состоянию на 27 июня 2019 г. Если эта ссылка устарела (Microsoft периодически меняет структуру своих постоянных ссылок или иным образом изменяет способ реализации своих репозиториев документации/ответов и т. д.), найдите MS-OVBA.pdf.

Некоторая дополнительная информация, которая может дополнять или не дополнять вышеизложенное:

http://www.codeproject.com/Articles/15216/Office-2007-bin-file-format

person David Zemens    schedule 09.07.2013
comment
Дружеский совет: упомянутый основной ресурс (извлечение функций из `vbaproject.bin`) кажется недоступным, поэтому основную часть этого ответа, получившего большое количество голосов, больше нельзя читать - @DavidZemens - person T.M.; 27.06.2019
comment
Спасибо @T.M. -- MS время от времени меняет свои репозитории и структуру документации. Я предполагаю, что где-то за 6 лет с момента публикации этого ответа они внесли критическое изменение в этот ресурс. Я обновил текущие местоположения ресурсов. Ваше здоровье. - person David Zemens; 27.06.2019

Вот статья, обновленная в 2017 году, в которой перечислены несколько инструментов, помогающих в этом. Мне удалось извлечь код VBA из vbaProject.bin с помощью инструмента OfficeMalScanner. Изменить: через несколько месяцев после успешного использования этого инструмента Windows обнаруживает в нем вредоносное ПО. Ссылка была www.dotrecoverer.org/code/OfficeMalScanner.zip. Используйте на свой страх и риск - мне удалось извлечь кучу необходимого кода VBA из проекта после того, как исходный код был утерян.

person pettys    schedule 27.06.2019
comment
Ссылка на инструмент OfficeMalScanner содержит вирус в загрузке! - person wbeard52; 25.09.2019