Пример использования:
Code: |
// После этого можно смотреть информация о таких системных модулях как: //winlogon.exe и servises.exe и д.р. EnableDebugPrivilege(True); // вкрючить
EnableDebugPrivilege(False); // выключить |
Сам код
Code: |
{ **** UBPFD *********** by **** >> Установка/снятие Debug привелегии у текущего процесса
Функция устанавливает/снимает отладочные привелегии у текущего процесса (можно выбрать и другой, изменив GetCurrentProcess на нужный Handle ).
Актуально для совместного использования с ToolHelp - т.е. получения информации о процессах.
Зависимости: Windows Автор: Мироводин Дмитрий (адаптация), Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. Copyright: Jeffrey Richter ********************************************** }
Function EnableDebugPrivilege(Const Value: Boolean): Boolean; Const SE_DEBUG_NAME = 'SeDebugPrivilege'; Var hToken : THandle; tp : TOKEN_PRIVILEGES; d : DWORD; Begin Result := False; If OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken) Then Begin tp.PrivilegeCount := 1; LookupPrivilegeValue(Nil, SE_DEBUG_NAME, tp.Privileges[0].Luid); If Value Then tp.Privileges[0].Attributes := $00000002 Else tp.Privileges[0].Attributes := $80000000; AdjustTokenPrivileges(hToken, False, tp, SizeOf(TOKEN_PRIVILEGES), Nil, d); If GetLastError = ERROR_SUCCESS Then Begin Result := True; End; CloseHandle(hToken); End; End; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!