我有一个与dll文件集链接的应用程序。我隐式加载DLL而不经过不安全的LoadLibrary()调用。我正在考虑使用证书文件对DLL进行签名,以避免DLL劫持。我怀疑隐式链接如何检查我的DLL是否已签名。
您应该使用MANIFESTDEPENDENCY链接器选项添加清单依赖项,并将publicKeyToken
设置为用于对dll进行签名的密钥。
例如。就像是:
/manifestdependancy:type='win32' name='mydll' language='*' publicKeyToken='1234567890ABCDEF0'
然后,Windows将拒绝加载您的应用程序,除非存在符合上述条件的dll。