首页
社区
课程
招聘
[讨论]关于其他防止程序获得我们的窗口句柄
发表于: 2011-5-30 13:05 10456

[讨论]关于其他防止程序获得我们的窗口句柄

2011-5-30 13:05
10456
如题
其中比较简单的一部分,如防止 EnumWindows EnumThreadWindows FindWindow/Ex 等等
这些看雪已经有人做过了,是shadow sdt hook。但是却没有人防的到GetWindow(还是防到了不愿意拿出手?),如果这个函数防不了,前面所做的工作将都是徒劳~

MJ貌似之前在看雪说过,GetWindow没有进入内核,事实上它是进了的,因为不管是得到最前面的窗口句柄(GW_HWNDFIRST),还是下一个(GW_HWNDNEXT),等等,都得用到WND结构(这个结构不透明的,WRK里也没有,reactOS的定义和windows实际的差距很大,结构里包含了这个窗体的所有信息,里面有个链,是按照x,y,z轴的空间顺序排列窗体的,用于取得first hwnd `next hwnd 这些,还有就是窗口所属关系的链,标识出parent,owner)

而每个窗体的WND是在内核空间的,GetWindow将调用ValidataHwnd验证一个句柄(GetWindow的第一个参数),如果有效将返回一个WND结构指针,而且ValidateHwnd最终还是要进入win32k的……我之前拦截了ValidateHwnd,除非我们能弄到WND结构的正确定义,否则……这种拦截没用的(因为要从ValidateHwnd返回的WND结构中得到句柄,才能判断是否是我们要保护的进程的窗口,否则会出现这种情况,A进程的窗口C, B进程的窗口D,C和D按z轴顺序是前后关系,此时A调用GetWindow(C,GW_WNDNEXT)-->ValidateHnwd(C)->取得下一个窗口句柄,就把D窗口找到了!,咱防不住啊~~)

对了,还有个方法是patch user32.dll , 这个嘛,有兴趣的可以试试啦,因为我觉得实在不是什么好方法,个人意见~ = =

如果大家有什么想法,可以回帖交流下……希望这个函数以后不再是一个保护不了的死角
保护窗口其实也蛮有用的,是吧?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
纠正下错误,那个链表里,排列顺序统一使用z 轴顺序排列的
2011-5-30 13:25
0
雪    币: 544
活跃值: (264)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
3
WND结构 第一个成员就是窗口句柄
2011-5-30 14:56
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
KiDebug说的没错,现在我说说我今天下午对比了N份数据得到结果吧…WND结构中只有5个我们关心的偏移,反正只是为了拦截getwindow嘛
0     HANDLE   hWindow
2c   PWND       pwndPrev
30   PWND       pwndNext
34   PWND       pwndParent
38   PWND       pwndChild
3c   PWND       pwndOwner
如果有错误,请麻烦告诉我一下~
2011-5-30 16:14
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
5
08年的时候跟踪了XP下的wnd结构,见附件.
上传的附件:
2011-5-30 18:09
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
6
那就谢谢苏大妈啦^_^
2011-5-30 18:12
0
雪    币: 247
活跃值: (112)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WST
7
很多方法可以吧,比如 IsWindow(i++)  GetWindowThreadProcessId 这两个个函数就可以  

还有  user32.dll  里面存在一个共享区域,直接读出来应该也可以
2011-6-1 17:57
0
雪    币: 1312
活跃值: (5164)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
标记一下.................
2011-6-4 04:51
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
9
如果是查标题这种的话随机生成标题,其他的不知道了,个人看法
2011-6-5 19:04
0
游客
登录 | 注册 方可回帖
返回
//