在WIN8 上进程保护的疑问
OB_PREOP_CALLBACK_STATUS PreProcCreateRoutine(__in PREG_CONTEXT RegistrationContext,
__inout POB_PRE_OPERATION_INFORMATION OperationInformation
)
{
PVOID pPsName = NULL;
if( OperationInformation->Operation == OB_OPERATION_HANDLE_CREATE &&
OperationInformation->ObjectType == *PsProcessType &&
OperationInformation->KernelHandle == 0 &&
(OperationInformation->Parameters->CreateHandleInformation.OriginalDesiredAccess & PROCESS_TERMINATE) )
{
pPsName = OperationInformation->Object;
OperationInformation->Parameters->DuplicateHandleInformation.DesiredAccess &= (~PROCESS_TERMINATE);
DbgPrint(" PreProcCreateRoutine PROCESS_TERMINATE\n");
}
return OB_PREOP_SUCCESS;
}WDK HELP 上说:
Object
A pointer to the process or thread object that is the target of the handle operation.
这个 进程对象 OperationInformation->Object 怎么得到进程路径呢?
我用内存搜索Object 是可以找到路径 是偏移 0x990,这个路径不会就这样定位吧?
//呵呵,获取到了短路径,那个全路径 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((" Path = %wZ", pName));
}
//KdPrint((" %wZ", pEprocess->SeAuditProcessCreationInfo.ImageFileName.Name));
OperationInformation->Parameters->DuplicateHandleInformation.DesiredAccess &= (~PROCESS_TERMINATE);
DbgPrint(" PreProcCreateRoutine PROCESS_TERMINATE\n");
}
return OB_PREOP_SUCCESS;
} OperationInformation->Object是EPROCESS或者ETHREAD。
获取路径可以使用ZwQueryInformationProcess。 Tesla.Angela 发表于 2013-1-7 14:09 static/image/common/back.gif
OperationInformation->Object是EPROCESS或者ETHREAD。
获取路径可以使用ZwQueryInformationProcess。 ...
老大,如果进程保护要 在WINXP 通用的话,是不是要2份代码。HOOK ObReferenceObjectByHandle xiaoc1026 发表于 2013-1-7 14:40 static/image/common/back.gif
老大,如果进程保护要 在WINXP 通用的话,是不是要2份代码。HOOK ObReferenceObjectByHandle ...
XP下的进程保护我比较喜欢用“把线程设置为SystemThread”。 Tesla.Angela 发表于 2013-1-7 14:09 static/image/common/back.gif
OperationInformation->Object是EPROCESS或者ETHREAD。
获取路径可以使用ZwQueryInformationProcess。 ...
原來要這樣 这个是好东西 Tesla.Angela 发表于 2013-1-7 17:21
XP下的进程保护我比较喜欢用“把线程设置为SystemThread”。
win8 下可以么 Tesla.Angela 发表于 2013-1-7 17:21
XP下的进程保护我比较喜欢用“把线程设置为SystemThread”。
win8 下可以么
页:
[1]