首页
社区
课程
招聘
Apc中偏移0x44能获取到的原理
发表于: 2013-10-15 21:34 5770

Apc中偏移0x44能获取到的原理

2013-10-15 21:34
5770
VOID __stdcall myPspGetSetContextSpecialApc(
        IN PKAPC Apc,
        IN PKNORMAL_ROUTINE *NormalRoutine,
        IN PVOID *NormalContext,
        IN PVOID *SystemArgument1,
        IN PVOID *SystemArgument2
        )
{
        PCONTEXT Ctx;
        //这里偏移0x44能获取到PCONTEXT是什么原理呢PKAPC这个结构最大才是0x2e啊,求高人解答下呢,请告诉我分析原理,死记会很没充实感
        Ctx = (PCONTEXT)((DWORD)Apc + 0x44);
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
PspGetSetContextSpecialApc函数wrk里面开头有这么一句:   
Ctx = CONTAINING_RECORD(Apc,GETSETCONTEXT,Apc);
说明这个Apc完整的结构是一个GETSETCONTEXT;
typedef struct _GETSETCONTEXT {
    KAPC Apc; // Apc指向这里 占0x2e大小
    KPROCESSOR_MODE Mode;
    KEVENT OperationComplete;
    CONTEXT Context; // 那这里估计就是你那个0x44偏移指的地方了
    KNONVOLATILE_CONTEXT_POINTERS NonVolatileContext;
} GETSETCONTEXT, *PGETSETCONTEXT;
2013-10-16 09:35
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
说的有道理呢,那我估计PspGetSetContextSpecialApc调用的上层函数传的Apc参数应该是GETSETCONTEXT这个类型了,被强制转换了,可以这样理解吗?
2013-10-16 09:49
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
就是这个意思
2013-10-16 09:53
0
游客
登录 | 注册 方可回帖
返回
//