본문 바로가기

Window Programming/VB

Debug 특권 얻기


주요 API 함수는 다음과 같습니다. (MSDN참고)

OpenProcessToken Function

LookupPrivilegeValue Function

AdjustTokenPrivileges Function
 

  우선 OpenProcessToken로 특권설정가능한 토큰핸들을 얻으신후. LookupPrivilegeValue로 원하는 특권의 특권값을 LUID구조체로 얻습니다. 그리고 TOKEN_PRIVILEGES에 값을 채우시고 그것을  AdjustTokenPrivileges로 넘기셔서 적용하면 끝~ 입니다. ^^

 

   디버그특권(E_DEBUG_NAME) 외에도  시스템종료 특권(SE_SHUTDOWN_NAME)나 보안특권(SE_SECURITY_NAME)과 같은 다양한 특권을 얻을수있는데.. 그건 winnt.h파일을 읽어보시거나 MSDN을 참고하시면 자세히 설명되있습니다.

  그리고 TOKEN_PRIVILEGES구조체의 배열의 크기를 직접조정하셔서 여러 특권정보를 채우시고

AdjustTokenPrivileges로 넘기시면 한번에 여러특권을 취득하실수도 있어보입니다.. ^^

 

첨부 : 디버그특권을 설정하는 예제