프로그래밍

NtLoadDriver가 STATUS_PRIVILEGE_NOT_HELD(0xC0000061)를 리턴

NtLoadDriver()를 사용해서 드라이버를 로드하려고 하는데, 레지스트리 키도 정상적으로 생성했고, 모든 값이 정상적인데도 불구하고 0xC0000061(Privilege not held) 값을 리턴하는 경우에는 권한 문제일 수 있다. 관리자 모드라고 할지라도 몇 Privileges는 기본적으로 Disable일 경우가 있는데 이러한 권한들이 필요한 작업을 하기 위해서는 작업을 수행하기 전에 확실하게 Enable 값으로 설정이 해야한다. NtLoadDriver 같은 경우에는 드라이버를 로드 할 수 있는 권한(SeLoadDriverPrivilege)가 필요하다. 이는 AdjustTokenPrivileges() 함수를 사용해 이 권한을 Enable 시킬 수 있다. 함수의 자세한 사항은 MSDN을 참고하는 걸로..

'프로그래밍' 카테고리의 다른 글

IrpSp->FileObject  (0) 2017.11.16
IopLoadUnloadDriver  (0) 2014.12.05
IoCreateDevice와 IoCreateDeviceSecure  (0) 2014.06.23
The funny page table terminology on AMD64  (0) 2014.06.03
vmxon 사용시 주의점  (0) 2014.04.14