找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 11364|回复: 8

在WIN8 上进程保护的疑问

[复制链接]

9

主题

32

回帖

0

精华

铜牌会员

积分
162
发表于 2013-1-7 13:05:08 | 显示全部楼层 |阅读模式
  1. OB_PREOP_CALLBACK_STATUS    PreProcCreateRoutine(
  2.         __in    PREG_CONTEXT    RegistrationContext,
  3.         __inout    POB_PRE_OPERATION_INFORMATION    OperationInformation
  4.         )
  5. {
  6.         PVOID pPsName = NULL;

  7.         if( OperationInformation->Operation == OB_OPERATION_HANDLE_CREATE &&
  8.                 OperationInformation->ObjectType == *PsProcessType &&
  9.                 OperationInformation->KernelHandle == 0 &&
  10.                 (OperationInformation->Parameters->CreateHandleInformation.OriginalDesiredAccess & PROCESS_TERMINATE) )
  11.         {
  12.                 pPsName = OperationInformation->Object;
  13.                 OperationInformation->Parameters->DuplicateHandleInformation.DesiredAccess &= (~PROCESS_TERMINATE);
  14.                 DbgPrint("[yapt] PreProcCreateRoutine PROCESS_TERMINATE\n");
  15.         }

  16.         return    OB_PREOP_SUCCESS;
  17. }
复制代码
WDK HELP 上说:

Object
A pointer to the process or thread object that is the target of the handle operation.

这个 进程对象 OperationInformation->Object 怎么得到进程路径呢?

我用内存搜索Object 是可以找到路径 是偏移 0x990,这个路径不会就这样定位吧?

9

主题

32

回帖

0

精华

铜牌会员

积分
162
 楼主| 发表于 2013-1-7 14:06:36 | 显示全部楼层
  1. //呵呵,获取到了短路径,那个全路径 PEPROCESS 结构没有申明不好获取
  2. OB_PREOP_CALLBACK_STATUS    PreProcCreateRoutine(
  3.         __in    PREG_CONTEXT    RegistrationContext,
  4.         __inout    POB_PRE_OPERATION_INFORMATION    OperationInformation
  5.         )
  6. {
  7.         PEPROCESS pEprocess = NULL;
  8.         //PUNICODE_STRING pName = NULL;
  9.         char* pName;

  10.         if( OperationInformation->Operation == OB_OPERATION_HANDLE_CREATE &&
  11.                 OperationInformation->ObjectType == *PsProcessType &&
  12.                 OperationInformation->KernelHandle == 0 &&
  13.                 (OperationInformation->Parameters->CreateHandleInformation.OriginalDesiredAccess & PROCESS_TERMINATE) )
  14.         {

  15.                 pEprocess = (PEPROCESS)OperationInformation->Object;

  16.                 //pName = (PUNICODE_STRING)(pEprocess + 0x390);
  17.                 pName = PsGetProcessImageFileName(pEprocess);

  18.                 if( MmIsAddressValid(pName) )
  19.                 {
  20.                         KdPrint(("[yapt] Path = %wZ", pName));
  21.                 }
  22.                 //KdPrint(("[yapt] %wZ", pEprocess->SeAuditProcessCreationInfo.ImageFileName.Name));
  23.                 OperationInformation->Parameters->DuplicateHandleInformation.DesiredAccess &= (~PROCESS_TERMINATE);
  24.                 DbgPrint("[yapt] PreProcCreateRoutine PROCESS_TERMINATE\n");
  25.         }

  26.         return    OB_PREOP_SUCCESS;
  27. }
复制代码

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2013-1-7 14:09:23 | 显示全部楼层
OperationInformation->Object是EPROCESS或者ETHREAD。
获取路径可以使用ZwQueryInformationProcess。

9

主题

32

回帖

0

精华

铜牌会员

积分
162
 楼主| 发表于 2013-1-7 14:40:07 | 显示全部楼层
Tesla.Angela 发表于 2013-1-7 14:09
OperationInformation->Object是EPROCESS或者ETHREAD。
获取路径可以使用ZwQueryInformationProcess。 ...

老大,如果进程保护要 在WINXP 通用的话,是不是要2份代码。HOOK ObReferenceObjectByHandle

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2013-1-7 17:21:05 | 显示全部楼层
xiaoc1026 发表于 2013-1-7 14:40
老大,如果进程保护要 在WINXP 通用的话,是不是要2份代码。HOOK ObReferenceObjectByHandle ...

XP下的进程保护我比较喜欢用“把线程设置为SystemThread”。

7

主题

414

回帖

1

精华

铂金会员

积分
2173
发表于 2013-4-11 15:38:14 | 显示全部楼层
Tesla.Angela 发表于 2013-1-7 14:09
OperationInformation->Object是EPROCESS或者ETHREAD。
获取路径可以使用ZwQueryInformationProcess。 ...

原來要這樣

0

主题

7

回帖

0

精华

初来乍到

积分
13
发表于 2013-10-15 12:00:08 | 显示全部楼层
这个是好东西

1

主题

77

回帖

0

精华

铂金会员

积分
1972
发表于 2014-8-5 17:03:46 | 显示全部楼层
Tesla.Angela 发表于 2013-1-7 17:21
XP下的进程保护我比较喜欢用“把线程设置为SystemThread”。

win8 下可以么

1

主题

77

回帖

0

精华

铂金会员

积分
1972
发表于 2014-8-5 17:03:48 | 显示全部楼层
Tesla.Angela 发表于 2013-1-7 17:21
XP下的进程保护我比较喜欢用“把线程设置为SystemThread”。

win8 下可以么
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表