首页
社区
课程
招聘
[求助]关于SwapContext的问题
发表于: 2008-11-24 15:44 5765

[求助]关于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期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 182
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
大家帮帮忙啊!!!!
2008-11-25 09:14
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
因为那个call后面不是绝对地址,而是相对的
2008-11-25 10:14
0
雪    币: 182
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
说的具体点,好吗????
2008-11-25 20:34
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
5
*(ULONG*)(Ptr+4) 是相对于80546a52+5的地址的偏移

SwapConText = *(ULONG*)(Ptr+4)  + 80546a52 + 5
2008-11-25 22:40
0
游客
登录 | 注册 方可回帖
返回
//