|
楼主 |
发表于 2013-1-7 14:06:36
|
显示全部楼层
- //呵呵,获取到了短路径,那个全路径 PEPROCESS 结构没有申明不好获取
- OB_PREOP_CALLBACK_STATUS PreProcCreateRoutine(
- __in PREG_CONTEXT RegistrationContext,
- __inout POB_PRE_OPERATION_INFORMATION OperationInformation
- )
- {
- PEPROCESS pEprocess = NULL;
- //PUNICODE_STRING pName = NULL;
- char* pName;
- if( OperationInformation->Operation == OB_OPERATION_HANDLE_CREATE &&
- OperationInformation->ObjectType == *PsProcessType &&
- OperationInformation->KernelHandle == 0 &&
- (OperationInformation->Parameters->CreateHandleInformation.OriginalDesiredAccess & PROCESS_TERMINATE) )
- {
- pEprocess = (PEPROCESS)OperationInformation->Object;
- //pName = (PUNICODE_STRING)(pEprocess + 0x390);
- pName = PsGetProcessImageFileName(pEprocess);
- if( MmIsAddressValid(pName) )
- {
- KdPrint(("[yapt] Path = %wZ", pName));
- }
- //KdPrint(("[yapt] %wZ", pEprocess->SeAuditProcessCreationInfo.ImageFileName.Name));
- OperationInformation->Parameters->DuplicateHandleInformation.DesiredAccess &= (~PROCESS_TERMINATE);
- DbgPrint("[yapt] PreProcCreateRoutine PROCESS_TERMINATE\n");
- }
- return OB_PREOP_SUCCESS;
- }
复制代码 |
|