Как мы можем проверить, что бинарный EXE (PE) - это COM Exe или Win32 Exe?

Мне нужно программно проверить, является ли данный двоичный файл EXE COM, EXE или Win32.exe, это возможно через таблицу импорта? Где в реестре я должен искать, если бинарный файл зарегистрирован для COM? Это относится к EXE-файлам, так как DLL-файлы для меня не проблема.

http://en.wikipedia.org/wiki/Component_Object_Model

1 ответ

Решение

Если у вас есть DLL, вы можете запросить ее DllGetClassObject (для экспорта этой функции требуются неработающие COM-серверы AFAIK).

Боюсь, что вы не можете, по крайней мере, не на 100% уверены. Вы можете применять только эвристические методы, такие как проверка, есть ли у exe библиотеки типов в своих ресурсах (но имейте в виду, что это не требуется).

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