私はOpenProcess関数を使用しています。コードはWindows XPでは完全に正常に動作しますが、7 X32ビットを獲得できません。OpenProcessが勝利に失敗する7
void SetDebugPrivileges()
{
void* tokenHandle;
TOKEN_PRIVILEGES privilegeToken;
LookupPrivilegeValue(0, SE_DEBUG_NAME, &privilegeToken.Privileges[0].Luid);
privilegeToken.PrivilegeCount = 1;
privilegeToken.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &tokenHandle);
AdjustTokenPrivileges(tokenHandle, 0, &privilegeToken, sizeof(TOKEN_PRIVILEGES), 0, 0);
CloseHandle(tokenHandle);
}
HANDLE _stdcall MyOpenProcess(DWORD dwAccess, BOOL bInherit, DWORD dwPID)
{
SetDebugPrivileges();
HANDLE hRes = OpenProcess(dwAccess | PROCESS_SET_INFORMATION | PROCESS_VM_READ, bInherit, dwPID);
}
OpenProcessが勝利7上のエラーコード5で失敗したがXP上で正常に動作し、次のように
私のコードです。誰でもこの問題を助けることができれば素晴らしいだろう。
あなたは管理権限でアプリケーションを実行していますか? – christian
アクセスが拒否されました。 VM_READとデバッグアクセスの両方には非常に特権があります。 –