怎么获取ShadowSSDT函数地址
1个回答
2016-07-04 · 百度知道合伙人官方认证企业
兄弟连教育
兄弟连教育成立于2006年,11年来专注IT职业教育,是国内专业的IT技术培训学校。2016年成功挂牌新三板(股票代码:839467)市值过亿。开设专注程序员培训专注php、Java、UI、云计算、Python、HTML5、
向TA提问
关注
展开全部
//懒办法,直接取Win2003下相对偏移硬编码
KeServiceDescriptorTableShadow = (ULONG)KeServiceDescriptorTable - 0x20 + 0x10;
ServiceTable = *(ULONG *)KeServiceDescriptorTableShadow;
KdPrint(("KeServiceDescriptorTable地址: 0x%X\n", KeServiceDescriptorTable));
KdPrint(("KeServiceDescriptorTableShadow地址: 0x%X\n", KeServiceDescriptorTableShadow));
KdPrint(("KeServiceDescriptorTableShadow值: 0x%X\n", ServiceTable));
//到这里,以上打印的信息都是对的
//下面这句蓝屏,通过序号获取任何函数的地址都蓝屏,试过附加到随便一个窗口进程一样蓝屏,求大神指教!!
OriginalAddress = *(ULONG *)ServiceTable + 0x1a4 * 4; //服务序号硬编码,随操作系统不同而不同
KdPrint(("NtUserGetMessage地址: 0x%X\n", OriginalAddress))
KeServiceDescriptorTableShadow = (ULONG)KeServiceDescriptorTable - 0x20 + 0x10;
ServiceTable = *(ULONG *)KeServiceDescriptorTableShadow;
KdPrint(("KeServiceDescriptorTable地址: 0x%X\n", KeServiceDescriptorTable));
KdPrint(("KeServiceDescriptorTableShadow地址: 0x%X\n", KeServiceDescriptorTableShadow));
KdPrint(("KeServiceDescriptorTableShadow值: 0x%X\n", ServiceTable));
//到这里,以上打印的信息都是对的
//下面这句蓝屏,通过序号获取任何函数的地址都蓝屏,试过附加到随便一个窗口进程一样蓝屏,求大神指教!!
OriginalAddress = *(ULONG *)ServiceTable + 0x1a4 * 4; //服务序号硬编码,随操作系统不同而不同
KdPrint(("NtUserGetMessage地址: 0x%X\n", OriginalAddress))
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询