首页
社区
课程
招聘
[求助]关于思考VirtualAlloc申请的内存属性的问题
发表于: 2014-3-17 17:13 5315

[求助]关于思考VirtualAlloc申请的内存属性的问题

2014-3-17 17:13
5315
现在正在做一个mfc DLL的pe loader,动态的把dll用VirtualAlloc加载到内存中然后执行.
DLL能够正常运行,但是seh无法正常工作,后面查看了下,原来是mfc的__except_handler3在异常处理时有判断指定的scopetable所在的内存块属性是否是MEM_IMAGE,但是我发现所有用VirturualAlloc申请的内存块属性都是MEM_PRIVATE.

我先后百度了下,都没有发现有那个API可以更改内存块的属性.请大使指导

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 74
活跃值: (424)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
VirtualProtect ......
BOOL VirtualProtect(
LPVOID lpAddress, // 目标地址起始位置
DWORD dwSize, // 大小
DWORD flNewProtect, // 请求的保护方式
PDWORD lpflOldProtect // 保存老的保护方式
);
2014-3-17 17:50
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
VirtualProtect这个好像不行吧,要设置MEM_IMAGE的
2014-3-17 18:05
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没有API可以直接修改这个属性的,除非用驱动修改内存对应vad的vadflags->VadType。

你可以改用mapfile的方式,这样直接就是mem_image了,或者挂钩virtualquery让mfc查询到的是mem_image,或者直接patch mfc的检查代码。
2014-3-17 22:28
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
LS正解,改VAD
2014-3-17 23:56
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
to kman
要驱动太麻烦了,你现在是直接patch mfc的检查代码
2014-3-20 10:59
0
游客
登录 | 注册 方可回帖
返回