我正在嘗試檢查DLL是否基於文件路徑進行簽名。我發現有使用WinVerifyTrust的這種類型的問題的預先存在的解決方案,但是,當我試着對「C:\ Windows \ System32 \ kernel32.dll」進行檢查時,它說:「文件」C:\ Windows \ System32 \ kernel32.dll「未簽名。」儘管kernel32應該是一個簽名的dll。我在Windows 7 fyi上。檢查DLL是否已簽名C++
這是源代碼,我調用的函數:https://msdn.microsoft.com/en-us/library/windows/desktop/aa382384(v=vs.85).aspx
如何修復功能?
當我在Windows 10上運行該應用程序時:'文件「c:\ windows \ system32 \ kernel32.dll」已簽名且簽名已被驗證。「# – selbie
fwiw,如果您將該代碼編譯爲32位默認爲Visual Studio),但在64位操作系統上運行時,文件訪問權限爲c:\ windows \ system32被重定向到c:\ windows \ syswow64。你可以手動檢查syswow64中的kernel32.dll是否被代碼簽名?另外,由於kernel32.dll可能是一個非常特殊的DLL,受其他可能的重定向的影響,手動將其複製到另一個目錄並對其進行重命名。然後再次運行復制文件上的代碼以查看它是否有任何差異。 – selbie
我必須將它編譯爲32位,當我嘗試在syswow中的kernel32.dll相同的消息「文件」C:\ Windows \ SysWOW64 \ kernel32.dll「未簽名」。我試圖把C:\和同樣的消息。我正在尋找一個全球性的解決方案,所以也許它不適用於Windows 7,但需要過去Vista的所有操作系統。 –