如何隐式加载只有已签名的DLL

问题描述 投票:3回答:1

我有一个与dll文件集链接的应用程序。我隐式加载DLL而不经过不安全的LoadLibrary()调用。我正在考虑使用证书文件对DLL进行签名,以避免DLL劫持。我怀疑隐式链接如何检查我的DLL是否已签名。

c++ windows dll
1个回答
2
投票

您应该使用MANIFESTDEPENDENCY链接器选项添加清单依赖项,并将publicKeyToken设置为用于对dll进行签名的密钥。

例如。就像是:

/manifestdependancy:type='win32' name='mydll' language='*' publicKeyToken='1234567890ABCDEF0'

然后,Windows将拒绝加载您的应用程序,除非存在符合上述条件的dll。

© www.soinside.com 2019 - 2024. All rights reserved.