首页
社区
课程
招聘
[讨论]VS2012抹除MZ标志的问题
发表于: 2014-11-30 16:54 5141

[讨论]VS2012抹除MZ标志的问题

2014-11-30 16:54
5141
功能:DLL载入后自动抹除自身PE标志
起初是用VC6编程  实现DLL加载时(DLLMAIN中)自动抹除本身PE标志!
相同的代码 没改一句话,放到2012工程下编译可以通过 ,但是载入的时候总是出现错误的对话框 提示:_pActualRawDllMain cannot be in a R/W section   
这是什么原因呢 是否跟编译选项有关系啊?

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
内存属性没有用VirtualProtect改成RW的吧~
2014-11-30 16:55
0
雪    币: 378
活跃值: (702)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
#pragma comment(linker,"/SECTION:TEXT,RWS")
2014-11-30 18:38
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
VirtualProtect(addrmz, sizeof(short), PAGE_READWRITE, &dwProtect);
*addrmz = 'z';
*(addrmz + 1) = 'z';
VirtualProtect(addrmz, sizeof(short), dwProtect, &dwProtect);
用VC6编译 打开后没问题 ~
但是VS2012 编译后打开就不行
2014-11-30 19:14
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我用的VirtualProtect 把要写入的内存设置了RW ,之后又改回来的
2014-11-30 19:15
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
6
话说,VirutalProtect返回啥?修改失败?
2014-11-30 20:06
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
原始代码里面有判断的  都是返回成功的 ~ 为了好看所以我给你精简了

我用OD简单看了下,其实VS2012编译的上面的代码都执行了,PE标志也被抹去了~ 但是我不清楚哪里弹出的那个错误对话框!!!
2014-11-30 20:45
0
游客
登录 | 注册 方可回帖
返回
//