首页
社区
课程
招聘
[讨论]驱动,如何保护窗口信息不被其他进程访问和修改
发表于: 2007-11-16 17:46 14100

[讨论]驱动,如何保护窗口信息不被其他进程访问和修改

2007-11-16 17:46
14100
跟踪GetWindowText
流程:
首先大概是一个seh设置函数
然后检查参数,并填充0
然后进入一个窗口查询函数,内部调用systemcall 1248(据估计是查询窗口能否能被访问)
根据call返回值返回失败或继续.
再根据HWND算出一个偏移值,指向窗口结构 调用call 11e3(这个call不知道干什么的,好像没做什么事情)
最后是在结构中计算出TEXT偏移,然后unicode转换copy等等

目前问题是
1248和11e3据查资料的情况来看,应该是属于KeServieDescriptorTableShadow里面的
不知道如何得到该表进行hook
另外就是哪里可以找到win32k.sys内部函数的资料

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (23)
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
  没人研究 自己来
0x1248->0x248->584 NtUserValidateHandleSecure
0x11e3->0x1e3->483 NtUserQueryWindow

下面是usermode抓的service call 可能不完整
GetWindowTextA=>Call service 00001248 =>Call service 000011E3 =>End
GetWindowTextW=>Call service 00001248 =>Call service 000011E3 =>End
2007-11-17 12:49
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
3
创建自己的类窗口(主要针对系统的“优化”措施,比如 GetWindowText  跨进程调用,对于系统控件不会导致 WM_GETEXT  的消息的产生),然后在消息处理中,验证消息的发送者。
2007-11-17 13:33
0
雪    币: 437
活跃值: (273)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
4
啊 这个外包在好多地方看过 呵呵 比如下面
http://topic.csdn.net/u/20071030/12/6835ebe1-6ec9-4c4e-825f-f8c1d66ba952.html
2007-11-17 15:13
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
等着蓝屏吧。有几款杀毒也HOOK了这些函数
2007-11-17 17:31
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
6
打算做反WG吧
2007-11-17 18:11
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
7
NtUserBuildHwndList
NtUserWindowFromPoint
NtUserGetForegroundWindow

不过spy++用GetWindow还能找到,再深挖一下
只要你能做到不让别的程序得到hwnd大概就差不多了
2007-11-17 18:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
kevinqing,softworm你们两想到好方法了吗?
NtUserBuildHwndList(只能防掉EnumWindow)
NtUserWindowFromPoint
NtUserGetForegroundWindow

softworm你hook后面两个函数是为了什么?
GetWindow和FindWindowEx都难防,不知道在ring0层是调用哪些函数。
2007-12-26 19:45
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
9
好象还有个NtUserFindWindowEx

后2个防这个:

HWND WindowFromPoint(
  POINT Point   // structure with point
);

HWND GetForegroundWindow(VOID)'

DWORD GetWindowThreadProcessId(
  HWND hWnd,             // handle to window
  LPDWORD lpdwProcessId  // address of variable for process identifier
);
2007-12-26 21:57
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
10
我的OD的确要和KAV打架,我也不清楚什么时候开始的,在办公室的机器上写的,没装AV,估计不是SSDT,Hook中断造成的可能性更大
2007-12-26 21:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
NtUserFindWindowEx我刚刚写发现了这个,都郁闷我半天

WindowFromPoint
GetForegroundWindow
GetWindowThreadProcessId
总感觉跟getwindow没什么关系,你是反调试出来的?
2007-12-26 22:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
装什么kav哦。NtUserFindWindowEx这个我也发现了。

WindowFromPoint
GetForegroundWindow
GetWindowThreadProcessId
这个三个函数跟getwindow好象都没瓜葛。。。3个函数都要跟?
2007-12-26 22:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
我先拦下来试试。

GetWindowThreadProcessId但这个shodaw下是哪个函数
2007-12-26 22:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
softworm,还是防不了getwindow,我跟踪下去也是跟楼主分析的一样getwindow调用了shadow里的NtUserValidateHandleSecure,但只不知道参数很难过滤。还有更奇怪的是我有一台电脑调用getwindow却不调用这个NtUserValidateHandleSecure函数。。头到了,睡觉
2007-12-27 03:51
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
15
GetWindow我也不明白,你要是搞定了告诉我一下
2007-12-27 18:12
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
16
GetWindow
不走寻常路~

没有碰内核~~搞起来很麻烦~
2007-12-29 19:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
楼上的,GetWindow 没有碰内核?
2007-12-31 22:48
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
是有些函数都没掉内核- -
主要是A版的
直接遍历内存结构得到的
2008-1-3 14:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
我已经找到方法,先测试测试
2008-1-3 19:46
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
20
GetWindow -> InternalGetWindowText -> NtUserInternalGetWindowText -> _InternalGetWindowText

搞出来了代码分享下:)
2008-2-22 15:20
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
21
2008-2-22 15:24
0
雪    币: 78
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
貌似进错了  以为是讨论PG软件呢
2008-2-23 22:18
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
帮楼主顶一个 我也想知道如何hook NtUserBuildHwndList
2008-5-17 10:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
NtUserValidateHandleSecure 这个不错
2008-5-17 12:46
0
游客
登录 | 注册 方可回帖
返回
//