ファイルパスに基づいて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ビットOSで実行された場合、c:\ windows \ system32のファイルアクセスはc:\ windows \ syswow64にリダイレクトされます。 syswow64のkernel32.dllがコード署名されていることを手動で確認できますか?また、kernel32.dllは他の可能性のあるリダイレクトの対象となる非常に特殊なDLLなので、手動で他のディレクトリにコピーして名前を変更してください。次に、コピーしたファイルのコードを再度実行して、違いがあるかどうかを確認します。 – selbie
"C:\ Windows \ SysWOW64 \ kernel32.dll"というファイルが "署名されていません"というsyswowのメッセージでkernel32.dllを試したときに32ビットとしてコンパイルする必要があります。私はC:\と同じメッセージでDLLを入れてみました。私はグローバルソリューションを探していますので、おそらくWindows 7では動作しませんが、過去のVistaではすべてのオペレーティングシステムで何かが必要です。 –