首页
社区
课程
招聘
[己解决]inline hook的恢复
发表于: 2011-2-3 23:25 9383

[己解决]inline hook的恢复

2011-2-3 23:25
9383

环境 :winxp+sp3

恢复函数:Ke386IoSetAccessProcess  ntkrnlpa.exe

问题:把memcpy这句注释掉不执行写操作可以正常运行,一旦加上就蓝屏

这个函数是个在SSDT或者Shadow SSDT 表里面未导出的函数,我下面这个方法应该是对的,找到的Ke386IoSetAccessProcess  地址也是对的,就是在修改前6个字节的时候蓝屏,很是奇怪。

大N们能不能帮忙看看,倒底是哪里出了点问题?

memcpy(functionAddress,SrcAsmCode,AsmCodeSize);

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
2
内存页不可写?看看内存有没有可写属性嘛~~
2011-2-4 09:18
0
雪    币: 177
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
内存只读属性已经去掉了,这个问题已经解决,好低级的问题,我自己感觉都有点杯具,小弟表示惭愧。。。

因为我用的2000 DDK,头文件里面没有定义一些数据类型,我就在头文件里面自定义了一些数据类型

typedef unsigned long DWORD;
typedef DWORD * PDWORD;
typedef unsigned char BYTE;
typedef BYTE PBYTE;
typedef int INT;


其中有一句杯具:typedef BYTE PBYTE;

所以后面把PBYTE当做入参的时候,出现了内存非法写入

修改之后就OK了 typedef BYTE * PBYTE;
2011-2-4 09:48
0
雪    币: 163
活跃值: (75)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
...........我说呢~

0x8b,0xff,0x55,0x8b,0xec,0x56 硬编码了

我这是SP2的,最后一个字节是0x57,还是需要判断下版本
2011-2-4 10:46
0
雪    币: 177
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我在本机上的inline hook的恢复已经做完了,但是做通用版时确实有点问题,还望指点,问题链接如下:

http://bbs.pediy.com/showthread.php?t=128951
2011-2-5 11:59
0
游客
登录 | 注册 方可回帖
返回
//