首页
社区
课程
招聘
[求助]在内核中,如何判断一个指定名称的进程是否存在呢??
发表于: 2009-12-12 18:42 5076

[求助]在内核中,如何判断一个指定名称的进程是否存在呢??

2009-12-12 18:42
5076
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 225
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己顶一下.....
2009-12-13 16:53
0
雪    币: 269
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
eprocess里面有....
2009-12-13 18:01
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
4
EPROCESS ----》 ActiveProcessLinks
2009-12-13 18:20
0
雪    币: 245
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
#include "Driver.h"
char* GetAllProcessListName(ULONG);
#pragma INITCODE
VOID getProccess()
{
  

  ULONG  Address;
  ULONG  oldAddress;
  Address = (ULONG)PsGetCurrentProcess();
  Address += 0x88;
  oldAddress = Address;

  char *processName;
  LIST_ENTRY*  listEntry;
  do
  {
          processName = GetAllProcessListName(Address);
      if(!strcmp(processName, "XXXXXXXX")) //you processname
    {

      KdPrint(("this is my process :%s exis!\n",processName));
      }
    Address = *(ULONG*)Address;
   
  }while(oldAddress != Address);   

}
char*  GetAllProcessListName(ULONG Address)
{
  Address -= 0x88;
  ULONG PID;
  char *processName;
  PID = *(int*)(Address + 0x84);
  processName = (char*)(Address + 0x174);
   return processName;
}
2009-12-13 22:28
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
EPROCESS读偏移不好,长度有限,而且相当不可靠,硬要用这个方法至少应该取要找的目标进程的固定特征来对比,论坛里有动态监视进程创建的,建议参考!
2009-12-14 02:49
0
雪    币: 34
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
好像在哪听过:
获取当前eprocess, 然后从eprocess地址开始搜索进程名,就算出偏移了.
2009-12-14 13:24
0
游客
登录 | 注册 方可回帖
返回
//