-
-
[求助][求助]hook ntdll.KiFastSystemCall的问题
-
发表于:
2009-9-30 13:29
16073
-
[求助][求助]hook ntdll.KiFastSystemCall的问题
ntdll中调用ntdll.KiFastSystemCall的代码如下
7C92D92E >/$ B8 AD000000 mov eax, 0AD
7C92D933 |. BA 0003FE7F mov edx, 7FFE0300
7C92D938 |. FF12 call dword ptr [edx] // call ntdll.KiFastSystemCall
7C92D93A \. C2 1000 retn 10
ntdll.KiFastSystemCall的代码如下
7C92E510 >/$ 8BD4 mov edx, esp // ntdll.KiFastSystemCall
7C92E512 |. 0F34 sysenter
7C92E514 >\$ C3 retn // ntdll.KiFastSystemCallRet
我想到有2种hook方式,但是都有问题
1.修改7FFE0300中的地址,指向我实现的hook函数
通过写程序测试,7FFE0300的内存是无法修改的
2.在7C92E510 >/$ 8BD4 mov edx, esp处jmp到我的hook函数
jmp到的hook函数的代码需要占用5字节,覆盖了7C92E514 >\$ C3 retn,我的hook函数中调用sysenter后返回到了7C92E514,这个地址已经被jmp指令覆盖,因此出错了
想请教的问题是
1.有没有办法修改7FFE0300处的内容
2.有没有办法修改调用sysenter后返回的地址
或者各位大牛有什么好的hook ntdll.KiFastSystemCall的方法,希望能得到各位的帮忙,谢谢..
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)