【发布时间】:2018-09-18 10:07:19
【问题描述】:
我有一个与一组 dll 文件链接的应用程序。我在不经过不安全的 LoadLibrary() 调用的情况下隐式加载 DLL。我正在考虑使用证书文件对 DLL 进行签名以避免 DLL 劫持。我怀疑隐式链接如何检查我的 DLL 是否已签名。
【问题讨论】:
我有一个与一组 dll 文件链接的应用程序。我在不经过不安全的 LoadLibrary() 调用的情况下隐式加载 DLL。我正在考虑使用证书文件对 DLL 进行签名以避免 DLL 劫持。我怀疑隐式链接如何检查我的 DLL 是否已签名。
【问题讨论】:
您应该使用 MANIFESTDEPENDENCY 链接器选项添加清单依赖项,并将 publicKeyToken 设置为用于签署 dll 的密钥。
例如类似:
/manifestdependancy:type='win32' name='mydll' language='*' publicKeyToken='1234567890ABCDEF0'
Windows 将拒绝加载您的应用程序,除非存在符合上述条件的 dll。
【讨论】: