-
-
[求助]问一个小小的问题
-
发表于:
2010-11-19 14:36
3352
-
void HookpIofCallDriver()
{
KIRQL oldIrql;
ULONG addr = (ULONG)IofCallDriver;
__asm
{
mov eax,addr
mov esi,[eax+2]
mov eax,[esi]
mov old_piofcalldriver,eax
}
kd> u IofCallDriver
nt!IofCallDriver:
804ef120 ff2500d25480 jmp dword ptr [nt!pIofCallDriver (8054d200)]
在这段代码里addr存放的是IofCallDriver的地址, 把地址赋给eax,eax+2指向ff25后面这个地址,那[eax+2]就应该是这个地址里的内容00d25480吧,把它赋给esi,那后面为啥又写
mov eax,[esi]啊,那岂不是把00d25480所指的内容赋给eax啊?
想我大半天想不明白,高手指点指点小弟啊。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课