首页
社区
课程
招聘
[转帖]NtQueryInformationProcess取进程信息函数 详解
发表于: 2015-11-12 09:03 6875

[转帖]NtQueryInformationProcess取进程信息函数 详解

2015-11-12 09:03
6875
NtQueryInformationProcess顾名思义就是取进程信息 他是属于ntdll.dll里面的一个未公开的api函数
此函数的原型如下
NTSYSAPI NTSTATUS NTAPI NtQueryInformationProcess (
IN HANDLE ProcessHandle, // 进程的句柄
IN PROCESSINFOCLASS InformationClass, // 信息类型
OUT PVOID ProcessInformation, // 缓冲指针
IN ULONG ProcessInformationLength, // 以字节为单位的缓冲大小
OUT PULONG ReturnLength OPTIONAL // 写入缓冲的字节数
);
第一个参数 进程句柄必须是openprocess以PROCESS_QUERY_INFORMATION模式取得的
第二个参数是信息类型 根据msdn里面查阅 可以取以下值(以下中文是随口翻译如有纰漏欢迎指出)

进程基础信息 ProcessBasicInformation值 0

进程调试端口 ProcessDebugPort 值7

64位进程信息ProcessWow64Information 值26

进程印象文件名ProcessImageFileName值27

ProcessBreakOnTermination29 未知

这里将用 ProcessBasicInformation 做例子
如果第二个参数为 ProcessBasicInformation
则第三个参数必须指向一个指针的结构为 PROCESS_BASIC_INFORMATION:
typedef struct
{
      DWORD ExitStatus; // 接收进程终止状态
      DWORD PebBaseAddress; // 接收进程环境块地址
      DWORD AffinityMask; // 接收进程关联掩码
      DWORD BasePriority; // 接收进程的优先级类
      ULONG UniqueProcessId; // 接收进程ID
      ULONG InheritedFromUniqueProcessId; //接收父进程ID
} PROCESS_BASIC_INFORMATION;

第四个参数 InheritedFromUniqueProcessId 则就是接收父进程id
例子网上太多就不一一举例了
来源千明论坛 797K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6e0y4V1y4e0k6Q4x3X3g2F1k6i4b7`.

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 4588
活跃值: (5921)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这么水...
2015-11-12 09:24
0
雪    币: 581
活跃值: (215)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
基本的不能在基本的东西还得发个帖啊。还详解一下。
2015-11-12 09:32
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
广告党,
2015-11-12 17:20
0
游客
登录 | 注册 方可回帖
返回