能力值:
( LV13,RANK:240 )
2 楼
VirutalProtect当中的需要改变属性的地址和字节数虽然是可以任意写,但是实际的属性修改保护是以页为单位的。
所以实际是保护了1024K的位置。你要改的地址所在的页的所有属性都会改变。
pmem[0] 和pmem+41在同一页,因此也会改变。。
soga就是这样
哈哈20KX到手了吗?? dwSize [in]
The size of the region whose access protection attributes are to be changed, in bytes. The region of affected pages includes all pages containing one or more bytes in the range from the lpAddress parameter to (lpAddress+dwSize). This means that a 2-byte range straddling a page boundary causes the protection attributes of both pages to be changed.
能力值:
( LV2,RANK:10 )
3 楼
1. 硬编码应该避免。。。
2. VirtualAlloc 第一个参数。。。起始地址 怎么能是 0???
虚拟地址 0 开始的 64Kb(好象是)是不允许 读 和 写 的。是系统机制 要问为什么请看《Windows 核心编程》
能力值:
( LV2,RANK:10 )
4 楼
[QUOTE=IamHuskar;1189607]VirutalProtect当中的需要改变属性的地址和字节数虽然是可以任意写,但是实际的属性修改保护是以页为单位的。
所以实际是保护了1024K的位置。你要改的地址所在的页的所有属性都会改变。
pmem[0] 和pmem+41在同一页,因此也会改变。。
soga就是这样
哈哈20KX...[/QUOTE]
楼主的结帖率:14.29%,你的20kx我看悬
能力值:
( LV13,RANK:240 )
5 楼
能力值:
( LV13,RANK:240 )
6 楼
第一个参数为NULL表示申请到的地址由系统分配返回,如果你想得到你想要的地址可以不填NULL,但是如果那个地址被人家用了,就申请失败。。
能力值:
( LV2,RANK:10 )
7 楼
恩 受教~
能力值:
( LV2,RANK:10 )
8 楼
能力值:
( LV13,RANK:240 )
9 楼
你是想分一半的KX么
能力值:
( LV2,RANK:10 )
10 楼
DWORD *pmem;这里pmem是跟pmem[0]还是有区别的,楼主看看pmem[0]的内容是什么?如果像这里,是个0值的话,是会访问违规的。
上传的附件:
能力值:
( LV2,RANK:10 )
11 楼
[QUOTE=IamHuskar;1189607]VirutalProtect当中的需要改变属性的地址和字节数虽然是可以任意写,但是实际的属性修改保护是以页为单位的。
所以实际是保护了1024K的位置。你要改的地址所在的页的所有属性都会改变。
pmem[0] 和pmem+41在同一页,因此也会改变。。
soga就是这样
哈哈20KX...[/QUOTE]
实际上真正的原因不是这样的吧。跟要保护的大小没有关系,而是他要修改内存属性的代码,访问了一个不能访问的内存地址而引起访问违规。
个人愚见