Проверьте файл Portable Executable (PE) на наличие подписи COM

Мне нужно программно проверить произвольные Dlls, чтобы увидеть, являются ли они inproc COM-серверами. Другими словами, могут ли они быть зарегистрированы в текущей системе с помощью regsvr32 / DllRegisterServer.

Если не считать предложений Энди по этому вопросу, есть ли способ выяснить необходимое без необходимости:

  • Загрузите библиотеку и проверьте экспорт DllRegisterServer/DllUnregisterServer.
  • Попытка регистрации с помощью regsvr32 при обнаружении исключений?

В формате PE должно быть что-то, что указывает на необходимость. Я предполагаю, что regsvr32 уже делает это внутри. Был бы признателен за любой вклад.

1 ответ

Решение

Нет. Единственное, что делает DLL COM-объектом, это то, что он экспортирует DllGetClassObject, Единственное, что делает его регистрируемым, это то, что он экспортирует DllRegisterServer,

Другие вопросы по тегам