-
-
[求助]关于SwapContext的问题
-
发表于:
2008-11-24 15:44
5765
-
kd> u kidispatchinterrupt l 100
.........
80546a4b e8c4d6fbff call nt!KiReadyThread (80504114)
80546a50 b101 mov cl,1
80546a52 e839000000 call nt!SwapContext (80546a90)
.......
我想找到SwapContext函数
UCHAR *cPtr;
UCHAR *pOpcode;
ULONG Length;
for(cPtr=(PUCHAR)KiDisPatchInterrupt);cPtr<(PUCHAR)KiDisPatchInterrupt)+PAGE_SIZE;cPtr+=Length)
{
Length=SizeOfCode(cPtr,&pOpcode);
if(!Length) brrak;
if(*(PCHAR)cPtr==0x01b1 && *(PCHAR)((ULONG)cPtr+2))
{
SwapConText=*(ULONG*)((ULONG)pOpcode+3)+(ULONG)cPtr+7;//其他的我能理解,但是这里难以理解,要我写的话,就写成了 SwapConText=*(ULONG*)(Ptr+4);为什么呢??请指教!!!!
break;
}
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)