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 |