私のコンパイラ: Microsoft Visual Studio 2012.
私のコードは detours 2.1 で機能しますが、私のコンパイラではもうコンパイルできません (モジュールは SAFESEH イメージに対して安全ではありません)。MVS2005 のような古いコンパイラを使用する必要がありますが、使用したくありません。
そのため、コードを更新して detours 3.0 を使用する必要があります。
いくつかのものを編集し、4 つのエラーが発生しました。
error C3861: 'DetourFunction': identifier not found
error C3861: 'DetourFunction': identifier not found
error C3861: 'DetourRemove': identifier not found
error C3861: 'DetourRemove': identifier not found
これはコードブロックです:
ここで DetourFunction エラー
o_NtQuerySystemInformation = (t_NtQuerySystemInformation)DetourFunction((PBYTE)GetProcAddress(GetModuleHandle("ntdll.dll"), "NtQuerySystemInformation"), (PBYTE)My_NtQuerySystemInformation);
o_ZwOpenProcess = (t_ZwOpenProcess)DetourFunction((PBYTE)GetProcAddress(GetModuleHandle("ntdll.dll"), "ZwOpenProcess"), (PBYTE)My_ZwOpenProcess);
迂回ここでエラーを削除
DetourRemove((PBYTE)o_NtQuerySystemInformation, (PBYTE)My_NtQuerySystemInformation);
DetourRemove((PBYTE)o_ZwOpenProcess, (PBYTE)My_ZwOpenProcess);
アップデート
そのため、DetourAttach と DetourDetach に変更しようとしましたが、PBYTE から PVOID へのエラーが発生します。