找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 591|回复: 9

《WIN64驱动教程》补充[5]:获得SSDT函数地址(WIN32/WIN64全兼容)

[复制链接]

856

主题

2630

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36108
发表于 2014-6-2 19:16:38 | 显示全部楼层 |阅读模式
作者:Tesla.Angela

WIN32和WIN64在NTOSKRNL里差别最大的地方,非SSDT莫属。不过这个差别,说大也大,说不大也不大。主要在以下四个方面:1.WIN32上KeServiceDescriptorTable是导出的,WIN64上需要自己定位;2.WIN32的KeServiceDescriptorTable->ServiceTableBase记录了函数的完整地址,而WIN64上记录的则是“耍了花样的”偏移地址(在低四位里存放了函数的参数个数)。3.SYSTEM_SERVICE_TABLE的定义是一样的,但因为SIZE_T和PVOID的长度都是跟平台相关的,所以此结构体在WIN32上的长度是4*4=16,在WIN64上的长度是4*8=32。4.NT5X64和NT6X64的SSDT偏移地址的计算方法还有点不同,NT5是dwTmp & 0xfffffff0,NT6是dwtmp=dwtmp >> 4。综上所述,整理出了适合所有NT平台的代码。
游客,如果您要查看本帖隐藏内容请回复

0

主题

37

回帖

0

精华

铜牌会员

积分
61
发表于 2024-1-1 12:18:16 | 显示全部楼层
学习了

0

主题

11

回帖

0

精华

铜牌会员

积分
95
发表于 2024-1-3 23:43:26 | 显示全部楼层

学习了

0

主题

41

回帖

0

精华

铜牌会员

积分
116
发表于 2024-1-4 09:09:21 | 显示全部楼层
学习了

0

主题

21

回帖

0

精华

铜牌会员

积分
53
发表于 2024-1-16 15:00:35 | 显示全部楼层
还在研究,感谢分享,SSDT用处多多啊

0

主题

47

回帖

0

精华

贵宾会员

积分
89
发表于 2024-1-26 14:06:01 | 显示全部楼层
2024补充学习

0

主题

45

回帖

0

精华

铜牌会员

积分
53
发表于 2024-3-13 16:50:24 | 显示全部楼层
学习一下

0

主题

9

回帖

0

精华

初来乍到

积分
9
发表于 2024-10-25 14:00:50 | 显示全部楼层
学习一下

0

主题

67

回帖

0

精华

铂金会员

积分
2141
发表于 2024-10-27 11:20:25 | 显示全部楼层
这个必须看看

0

主题

40

回帖

0

精华

铜牌会员

积分
64
发表于 2024-10-29 17:46:52 | 显示全部楼层
需要用到.看看兼容性.谢谢tesla分享.
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表