其中一个系统服务在他的日志中报告它已经加载了一些对象。在日志中还提到了加载对象的 CLSID(值为 1CECAF7C-B7A0-4B81-912D-78F202E3F0EA,另请参见屏幕截图:
当然,首先我在注册表中搜索了这个值(我也阅读了这个 Stack Overflow question)。但我找不到它,可能这个值在注册表中根本不存在。奇怪的...
请解释这怎么可能?以及如何找到实现该对象的 DLL。
其中一个系统服务在他的日志中报告它已经加载了一些对象。在日志中还提到了加载对象的 CLSID(值为 1CECAF7C-B7A0-4B81-912D-78F202E3F0EA,另请参见屏幕截图:
当然,首先我在注册表中搜索了这个值(我也阅读了这个 Stack Overflow question)。但我找不到它,可能这个值在注册表中根本不存在。奇怪的...
请解释这怎么可能?以及如何找到实现该对象的 DLL。
这怎么可能?很简单:DLL 根本就没有注册。
当然,这意味着您无法从注册表中找到 DLL,但您可能出于其他原因知道您需要哪个 DLL。例如,因为您自己编写了 DLL!
在这种情况下,Microsoft 很可能知道 Microsoft 终端服务 DLL。此外,他们将知道何时更改 CLSID。你也不知道,所以不要在这里做假设。
即使这已经得到回答,我也会投入 2 美分。它有可能,甚至很可能正在使用免注册 COM。在这种情况下,类型库信息存储在清单中。
如果您知道要查找的进程,则可以使用 procexp 检查加载到该进程中的 DLL。获得 DLL 列表后,您可以检查可疑或可能候选的清单,以尝试找到 ProgId 和 CLSID。