Пример использования:

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;

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить