首页
社区
课程
招聘
[求助]挂钩函数参数检查
发表于: 2008-11-5 14:42 5012

[求助]挂钩函数参数检查

2008-11-5 14:42
5012
如何对用户层传到驱动层的handle句柄做有效性检查?
ProbeForRead?
谁有具体的检查方法,共享一下啊。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
if (handle) obreferenceobjctbyhandle
2008-11-5 19:04
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这种检查太粗糙了,对内核几乎没用,我觉得。我用BOSDHOOK工具测了一下还是会蓝屏。况且二楼没有用到最基本的SEH。
2008-11-5 20:59
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
对handle句柄不需要进行probeforread校验

如果是内存的话:

_try
{
  probeforread(address , len , ailg);
  ......access to address ....
}
_except(EXCEPTION_EXECUTE_HANDLER)
{
   xxxxx
}

楼主自己问问题写的不清楚,还说别人粗糙?
2008-11-6 10:57
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习中......
2008-11-6 11:00
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不好意思,QIQI。
我还有一些疑惑,如果我要SSDT Hook一个函数。在Hook的函数中如果我要使用这个handle句柄,如果传入恶意的句柄(假如是一个无效的地址),那岂不是会。。。
2008-11-6 17:18
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
handle只是一个句柄,并不是一个真实的内存地址,一般只用校验handle是否为空即可

一般需要校验的包括指针类参数的内存地址,以及结构体内的指针内存地址等等

另外需要预防zero length bypass probe, 未使用域的攻击等等
2008-11-6 18:43
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢啊,那未使用的参数不需要做检查?
例如:源函数
NTSTATUS
ZwSetValueKey(IN HANDLE KeyHandle,
                          IN PUNICODE_STRING ValueName,
                          IN ULONG TitleIndex,
                          IN ULONG Type,
                          IN PVOID  Data,
                          IN ULONG DataSize)
{
xxxxxx
}
Hook的函数
NTSTATUS
HookZwSetValueKey(IN HANDLE KeyHandle,
                          IN PUNICODE_STRING ValueName,
                          IN ULONG TitleIndex,
                          IN ULONG Type,
                          IN PVOID  Data,
                          IN ULONG DataSize)
{
if(!KeyHandle) retuen STATUS_INVALID_PARAMETER;
如果我未使用ValueName,是否要对ValueName.buffer做地址的有效性检查?
未使用的意思是我只对KeyHandle判断,其他的变量未使用,直接返回。
return OldZwSetValueKey(KeyHandle,ValueName,TitleIndex,Type,Data,DataSize)
}
2008-11-6 21:11
0
雪    币: 214
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
未使用的域也有可能导致崩溃,具体看你的HOOK函数实现
2008-11-6 22:10
0
游客
登录 | 注册 方可回帖
返回