вот попробуй мой код. Для проверки корректности работы использую ProcessExplorerNT - он показывает наличие отдочных привилегий
DebugPrivilege(true) - поставить
DebugPrivilege(false) - убрать
Код:
BOOL DebugPrivilege(BOOL Enable)
{
HANDLE hToken;
TOKEN_PRIVILEGES tp;
ULONG d;
ULONG ret = false;
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
{
tp.PrivilegeCount = 1;
LookupPrivilegeValueA(0, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
if (Enable)
{
tp.Privileges[0].Attributes = 0x00000002;
}
else
{
tp.Privileges[0].Attributes = 0x80000000;
}
ret = AdjustTokenPrivileges(hToken, false, &tp, sizeof(TOKEN_PRIVILEGES), 0, &d);
CloseHandle(hToken);
}
return ret;
}
Если не помогает, значит стоит какаято защита которая это не дает тебе сделать. Кстати каспер при некоторых настройках орет на программы которые пытаются получить эти привилегии )
Еще может быть из-за политики безопасности, так что на вся случай проверь работу еще и на учетке главного админа
|