최신목록

2016년 4월 28일 목요일

사용자 계정 정보 얻기


USER_MODE

1. 현재 스레드의 계정 정보를 구할 수 있는 API 제공(GetUserName, LsaGetUserName등등)
 
2. 스레드의 토큰을 이용하는 방법
   - OpenProcessToken, OpenThreadToken
   - GetTokenInformation(HANDLE tokenhandle, TokenUser,.....)
3. SID 를 이용하는 방법
   - LookupAccountSid

KERNEL_MODE

1. 스레드 토큰 이용
   - 스레드토큰을 이용해서 사용자 토큰을 얻음

    - 사용자 토큰에 있는 SID 정보를 이용하여 USER_MODE로 보내어 계정얻음.
       RtlCopySid 이용하여 전달함.
2. driver의 callback 데이타를 이용함.(mini filter driver)
    PACCESS_TOKEN pToken;
    PTOKEN_USER    pUser = NULL;
    pToken = SeQuerySubjectContextToken(&(Data->Iopb->Parameters.Create.SecurityContext->AccessState->SubjectSecurityContext));
    SeQueryInformationToken(pToken, TokenUser, &pUser);
    ........
    ExFreePool(pUser);

댓글 없음:

댓글 쓰기