x64通过PspCidTable遍历进程

PspCidTable可以在PsLookupProcessByProcessId下寻找

我这硬编码了 只适用于win7 x64 其它版本需要自己改下特征码


#include <ntddk.h>


extern "C" NTKERNELAPI PVOID NTAPI  
ObGetObjectType(  
      IN PVOID pObject  
      ); 

extern "C" NTKERNELAPI UCHAR* 
PsGetProcessImageFileName(
	  IN PEPROCESS Process
	  );

#define   MAX_ENTRY_COUNT (0x1000/16)  //一级表中的 HANDLE_TABLE_ENTRY个数
#define   MAX_ADDR_COUNT   (0x1000/8) //二级表和 三级表中的地址个数

ULONG g_ProcessCount = 0;

typedef struct _EX_PUSH_LOCK                 // 7 elements, 0x8 bytes (sizeof) 
{                                                                              
              union                                    // 3 elements, 0x8 bytes (sizeof) 
              {                                                                          
                  struct                               // 5 elements, 0x8 bytes (sizeof) 
                  {                                                                      
/*0x000*/             UINT64       Locked : 1;         // 0 BitPosition                  
/*0x000*/             UINT64       Waiting : 1;        // 1 BitPosition                  
/*0x000*/             UINT64       Waking : 1;         // 2 BitPosition                  
/*0x000*/             UINT64       MultipleShared : 1; // 3 BitPosition                  
/*0x000*/             UINT64       Shared : 60;        // 4 BitPosition                  
                  };                                                                     
/*0x000*/         UINT64       Value;                                                    
/*0x000*/         VOID*        Ptr;                                                      
              };                                                                         
}EX_PUSH_LOCK, *PEX_PUSH_LOCK;                                                 
                
typedef struct _HANDLE_TRACE_DB_ENTRY // 4 elements, 0xA0 bytes (sizeof) 
          {                                                                        
/*0x000*/     struct _CLIENT_ID ClientId;       // 2 elements, 0x10 bytes (sizeof) 
/*0x010*/     VOID*        Handle;                                                 
/*0x018*/     ULONG32      Type;                                                   
/*0x01C*/     UINT8        _PADDING0_[0x4];                                        
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值