Как найти DLL, когда CLSID не существует в реестре
Одна из системных служб сообщает в своем журнале, что она загрузила какой-то объект. В журнале упоминается также CLSID загруженного объекта (значение 1CECAF7C-B7A0-4B81-912D-78F202E3F0EA, см. Также скриншот:
https://i.imgur.com/wdyzBYF.png
Конечно, прежде всего я искал это значение в реестре (я перечитал и этот вопрос переполнения стека). Но я не могу найти его, возможно, это значение вообще не существует в реестре. Странный...
Пожалуйста, объясните, как это возможно? И как мне найти DLL, в которой реализован этот объект.
2 ответа
Как это возможно? Просто: DLL просто никогда не была зарегистрирована.
Конечно, это означает, что вы не можете найти DLL из реестра, но по какой-то другой причине вы можете узнать, какая DLL вам нужна. Например, потому что вы сами написали DLL!
В этом случае вполне возможно, что Microsoft знает о библиотеках служб терминалов Microsoft. Кроме того, они будут знать, когда они изменят CLSID. Вы тоже не знаете, поэтому не делайте предположений здесь.
Я добавлю свои 2 цента, хотя на это уже был дан ответ. Возможно или даже вероятно, что он использует регистрацию COM бесплатно. В этом случае информация библиотеки типов хранится в манифестах.
Если вы знаете процесс, который вы ищете, вы можете затем использовать procxp для проверки библиотек DLL, загруженных в процесс. Когда у вас есть список DLL, вы можете изучить манифесты подозрительных или вероятных кандидатов, чтобы попытаться найти ProgIds и CLSID.