首页
社区
课程
招聘
[求助]HOOK NtUserQueryWindow时遇到的问题
发表于: 2016-5-21 02:24 7821

[求助]HOOK NtUserQueryWindow时遇到的问题

2016-5-21 02:24
7821
UINT_PTR  __stdcall MyNtUserQueryWindow(IN ULONG WindowHandle,IN ULONG TypeInformation)
{
int wPid;
 wPid = ((NTUSERQUERYWINDOW)_MyNtUserQueryWindow)(WindowHandle, TypeInformation); 

DbgPrint("NtUserQueryWindow   调用  %s  wPid = %d\n",
 (int)PsGetCurrentProcess() + EPROCESS_IMAGE_NAME, wPid);

	

	return wPid;	
}


XP下。  返回的wPid就是正常的进程pid 。。是窗口所在进程的pid 。

但是win7 32位下。。返回的  我看不懂了= = 。  win7 32要怎么判断返回的pid 。。我要根据pid进行拦截。。。谢谢各位了


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
TypeInformation 决定出来的是pid还是别的东西~
2016-5-21 02:42
0
雪    币: 5
活跃值: (127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我从XP上看TypeInformation是0或者1的时候 出来的都是pid。。。
w7上我把第二个参数改成0或者1  依然出来乱七八糟的= = 。
谢谢拉
2016-5-21 02:58
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
4
传说中TypeInformation=0应该出来pid

但是实际上有时候出来的是tid或其他什么东西。

但是如果用Type=1,理论上则必然是pid。

都多少年前的东西了~忘光了~

PS:
没记错MaxType=10,所以从0-10跑一遍看看那个能出来pid就知道了~
2016-5-21 03:15
0
雪    币: 5
活跃值: (127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
可是XP上的确是 0 -10 。。。。win7 x86居然是三位数的。。。2e6   2e7  2e8   2f7   37e。。
2016-5-21 04:05
0
雪    币: 5
活跃值: (127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
。。。是我弄错了。。。hook错函数了= = ,   编号写错了
2016-5-21 05:01
0
雪    币: 44
活跃值: (186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
win7 和XP 的函数代号是不一样的
2016-5-21 13:06
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
8
不会啊~怎么可能。
2016-5-21 14:41
0
雪    币: 5
活跃值: (127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
俩函数写反啦 。。。
2016-5-21 16:53
0
游客
登录 | 注册 方可回帖
返回
//