J'essaie de vérifier si une DLL est signée en fonction du chemin du fichier. Je vois qu'il existe des solutions préexistantes pour ce type de problème en utilisant WinVerifyTrust, cependant, quand j'ai essayé de le vérifier par rapport à "C: \ Windows \ System32 \ kernel32.dll" il a dit: "Le fichier" C: \ Windows \ System32 \ kernel32.dll "n'est pas signé." bien que kernel32 soit une DLL signée. Je suis sur Windows 7 fyi.Vérifiez si une DLL est signée C++
Ceci est le code source à la fonction que j'ai appelé: https://msdn.microsoft.com/en-us/library/windows/desktop/aa382384(v=vs.85).aspx
Comment puis-je fixer la fonction?
Lorsque j'ai couru cette application sur Windows 10: 'Le fichier" c: \ windows \ system32 \ kernel32.dll "est signé et la signature a été vérifiée.' – selbie
fwiw, si vous avez compilé ce code en 32 bits (le par défaut pour Visual Studio), mais s'exécutait sur un système d'exploitation 64 bits, l'accès au fichier obtient pour c: \ windows \ system32 est redirigé vers c: \ windows \ syswow64. Pouvez-vous vérifier manuellement que le kernel32.dll dans syswow64 est signé? En outre, étant donné que kernel32.dll est probablement une DLL très spéciale soumise à d'autres possibilités de redirection, copiez-la manuellement dans un autre répertoire et renommez-la. Puis réexécutez le code sur le fichier copié pour voir s'il y a des différences. – selbie
Je dois le compiler en 32 bits, quand j'ai essayé kernel32.dll dans syswow même message "Le fichier" C: \ Windows \ SysWOW64 \ kernel32.dll "n'est pas signé". J'ai essayé de mettre la DLL dans C: \ et le même message. Je suis à la recherche d'une solution globale, alors peut-être que cela ne fonctionne pas sur Windows 7, mais besoin de quelque chose pour tous les systèmes d'exploitation passé vista. –