首页
社区
课程
招聘
[旧帖] [求助]我添加了SSDT新的服号,但是怎么在R3调用都不成功,求教. 0.00雪花
发表于: 2011-9-15 16:05 1063

[旧帖] [求助]我添加了SSDT新的服号,但是怎么在R3调用都不成功,求教. 0.00雪花

2011-9-15 16:05
1063
我添加了一个SSDT函数。
服号为254. 0X11C。直接指向的NtOpenProcess的地址。我用WinDbg查看地址是修改成功了的
然后我在R3修改了OpenProcess给Eax传递的0x7A。为0x11c
结果无论如何都无法调用成功。
我不知道是哪里出了问题。也没办法跟踪Syst指令,就找不到问题出在哪里。
还请高人给条建议。
--------------
刚才查阅了一下资料
说根本不需要处理SYSENTER和那些段寄存器什么的。
只需要修改KiFastSystemCall里面的服号。
我在R3已经修改好了。用OD跟踪到Sysenter都没问题。
那么久是驱动没处理好了?

下面是我的代码。
VOID AddSSDT_Ser()
{
WPOFF();
KeServiceDescriptorTable->NumberOfService++;
WPON();
}

VOID SubSSDT_Ser()
{
WPOFF();
KeServiceDescriptorTable->NumberOfService--;
WPON();
}

---
处理部分:
Address9                = (ULONG)KeServiceDescriptorTable->ServiceTableBase + 0x11c * 4;
*((ULONG*)Address9) = (ULONG)NtOpenProcess;

我已经用Xt.KD.WinDbg查看并且证实当前地址是指向了原始的NtOpenProcess
----------

我现在只能猜测:
1.是不是函数的原始地址和模块没有导致。
2.没有函数名导致??
3.或者只能KeAddSystemServiceTable这样做?必须添加一张表?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//