Там какой-либо путь состоит в том, чтобы программно определить, содержит ли .xls макросы, на самом деле не открывая его в Excel?
Также там какие-либо методы должны исследовать, с каким сертификатом (включая сертификат метки времени) они макросы подписываются? Снова не используя Excel.
Я задаюсь вопросом в особенности, если существуют какие-либо строки, которые всегда обнаруживаются в необработанных данных файла Excel, когда макросы присутствуют.
Да, вы можете открыть файл .xls как составной файл документа и проверить, содержит ли он папку VBA и потоки, содержащие код VBA.
Образец кода доступен в этой статье CodeProject:
Информация о сертификате хранится в потоке DocumentSummaryInformation. Если вы хотите считать информацию оттуда, вам следует покопаться в спецификациях формата файла, доступных в Microsoft:
[MS-OSHARED]: Office Common Data Types and Objects Structure Specification
[MS-OFFCRYPTO]: Спецификация структуры криптографии документов Office
Файл xls, содержащий макрос, должен содержать строку, выглядящую примерно так
Keyboard Shortcut:
Не знаю, является ли это надежным решением, хотя