首页
社区
课程
招聘
求助关于SSDT的有关问题
发表于: 2010-10-8 01:14 3589

求助关于SSDT的有关问题

2010-10-8 01:14
3589
第一个问题:
比如说我要hook ZwQuerySystemInformation这个函数,先要
_declspec(dllimport)
NTSTATUS
ZwQuerySystemInformation (
    ULONG SystemInformationClass,
    PVOID SystemInformation,
    ULONG SystemInformationLength,
    PULONG ReturnLength );
这样导出,我不明白的是为什么还要定义下面这个函数原型

typedef NTSTATUS (*ZWQUERYSYSTEMINFORMATION) (
    ULONG SystemInformationClass,
    PVOID SystemInformation,
    ULONG SystemInformationLength,
    PULONG ReturnLength );

ZWQUERYSYSTEMINFORMATION OldZwQuerySystemInformation;

第二个问题:
在保存原函数的地址时,是这么写的:
OldZwQuerySystemInformation = (ZWQUERYSYSTEMINFORMATION)(SYSTEMSERVICE(ZwQuerySystemInformation));
我在DebugView里输出看了一下,SYSTEMSERVICE(ZwQuerySystemInformation)的结果和OldZwQuerySystemInformation是一样的,那么为什么前面还要加上(ZWQUERYSYSTEMINFORMATION)呢?

恳请高手们指导一下,在此谢谢了!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 678
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
俺不懂驱动,不过,你第一个问题里定义的应该是函数指针类型吧,第二个OldZwQuerySystemInformation = (ZWQUERYSYSTEMINFORMATION)(SYSTEMSERVICE(ZwQuerySystemInformation));中(ZWQUERYSYSTEMINFORMATION)是类型的强制转换,你赋值了当然是是相同的了……
没学过驱动,不知道说的对不对,还望高手纠正……
2010-10-8 02:14
0
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
LS正解。这是c语言的基础问题。和驱动无关。
2010-10-8 11:17
0
雪    币: 135
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢楼上两位的解答!搞清楚了
2010-10-8 22:52
0
游客
登录 | 注册 方可回帖
返回
//