首页
社区
课程
招聘
[求助]对于一个exe/dll image来说, PAGE_EXECUTE_READWRITE 和 PAGE_EXECUTE_WRITECOPY到底有何差别?
发表于: 2015-6-27 16:17 10361

[求助]对于一个exe/dll image来说, PAGE_EXECUTE_READWRITE 和 PAGE_EXECUTE_WRITECOPY到底有何差别?

2015-6-27 16:17
10361
比较迷惑。

我感觉这两个protect对于image来说是一样的, 是这样吗?

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 70
活跃值: (37)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
PAGE_EXECUTE_WRITECOPY 在你修改进程在内存中的代码段的时候不会影响到硬盘中的PE文件,否则的话修改之后硬盘上的也被改掉
2015-6-27 17:57
0
雪    币: 194
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
PAGE_EXECUTE_READWRITE 一样不会modify原文件。

我今天专门编了个程序实验了一下, 两种参数没有啥差别。

同时打开同一exe的两个process , 修改其中一个(比如把一个函数jmp到另外一个)
不会影响该exe的另一个process 。

所以我觉得, 对于exe/dll image来说, 这两个protect没有区别。
2015-6-27 20:52
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
PAGE_EXECUTE_WRITECOPY 的意思是copyonwrite->本节写入时复制->本节内所有page都可以writeoncopy,READWRITE只是单纯的写入无copy
2015-6-28 00:07
0
雪    币: 70
活跃值: (37)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
因为你加上了可写属性
2015-6-28 12:42
0
雪    币: 74
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
当系统 中存在 两份EXE/DLL 以上时,才会有作用,PAGE_EXECUTE_WRITECOPY 映射到同一块物理内存,PAGE_EXECUTE_READWRITE是不同的物理内存
2015-6-28 13:04
0
雪    币: 194
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我觉得对于exe/dll image来说, PAGE_EXECUTE_READWRITE 也是copy on write 。

不可能在原image上写入, 也是在page file里新copy一块。
2015-6-28 14:45
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
建议看 wrk 的源码!
2015-6-29 16:23
0
雪    币: 194
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
WRITECOPY肯定不会map到同一个physical address , 而READWRITE也不是同一个 。
对于两个instance来说, 它们都是不同的address

今天又研究了一下, 做个总结。

首先, 我犯了个错误, 那就是WRITECOPY对于编程来说, 是弄不出来的。
无论是VirtualAlloc还是VirtualProtect都不支持。
我用VirtualProtect把一处函数地址修改为PAGE_EXECUTE_WRITECOPY 返回为TRUE , 就以为成功了。
而事实上, 后来再去查询结果是PAGE_EXECUTE_READWRITE
所以, 我们可以忘掉WRITECOPY , 这个只能是linker能做出来, 我们程序员做不出来。

那么什么时候生成文件中会有WRITECOPY的section呢?
我编程扫描了一下, 发现了.textbss 这个section是PAGE_EXECUTE_WRITECOPY , 查了一下, 这个是在linker里面, 开启incremental linking之后, 由linker生成的。
这个section是最容易找到的WRITECOPY , 至少我目前不知道其他任何方式能够生成WRITECOPY的page
2015-6-30 23:39
0
游客
登录 | 注册 方可回帖
返回
//