首页
社区
课程
招聘
[求助]谁动了我的堆栈变量(求高手解答)
发表于: 2010-1-10 16:41 4026

[求助]谁动了我的堆栈变量(求高手解答)

2010-1-10 16:41
4026
在刚刚进入MyNtOpenProcess函数前,一直到ret  18h没有执行前
esp=b238ad50
1: kd> dd b238ad50
b238ad50  8054261c 0007f268 00000400 0007f238
b238ad60  0007f250 0007f25c 7c92e4f4 badb0d00
b238ad70  0007f21c b2d67d98 b2d67dcc 00000000
b238ad80  00000000 00000000 00000000 00000000

esp=b238ad48
1: kd> dd b238ad48
b238ad48  8260bf5f 8260bfd5 8054261c 0007f268
b238ad58  00000400 0007f238 0007f250 0007f25c
b238ad68  7c92e4f4 badb0d00 0007f21c b2d67d98
b238ad78  b2d67dcc 00000000 00000000 00000000

当ret 18h执行后,堆栈中的数据变了
1: kd> dd b238ad50
b238ad50  b238ad64 00000000 8260bf5f 00000008
b238ad60  00000246 0007f25c 7c92e4f4 badb0d00
b238ad70  0007f21c b2d67d98 b2d67dcc 00000000
b238ad80  00000000 00000000 00000000 00000000

1: kd>  dd b238ad48
b238ad48  0007f22c 805cc3fc b238ad64 00000000
b238ad58  8260bf5f 00000008 00000246 0007f25c
b238ad68  7c92e4f4 badb0d00 0007f21c b2d67d98
b238ad78  b2d67dcc 00000000 00000000 00000000

NTSTATUS  MyNtOpenProcess(
PULONG IsCallApi,
ULONG RetAddr,
PHANDLE            ProcessHandle,
ACCESS_MASK          AccessMask,
POBJECT_ATTRIBUTES  ObjectAttributes,
PCLIENT_ID          ClientId )
{
    //DbgPrint("ProcessID:%d,ThreadId:%d\n",ClientId->UniqueProcess,ClientId->UniqueThread);

    *IsCallApi=1;
    return STATUS_SUCCESS;

}

汇编:
KernelHookLib!MyNtOpenProcess:
f8ac26b0 8bff            mov    edi,edi
f8ac26b2 55              push    ebp
f8ac26b3 8bec            mov    ebp,esp
f8ac26b5 8b4508          mov    eax,dword ptr [ebp+8]
f8ac26b8 c70001000000    mov    dword ptr [eax],1
f8ac26be 33c0            xor    eax,eax
f8ac26c0 5d              pop    ebp
f8ac26c1 c21800          ret    18h

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

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 182
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
找到了,原来是我单步调试,微软的KiTrap01使用了我刚释放的堆栈,修改了数据
2010-1-10 19:14
0
游客
登录 | 注册 方可回帖
返回