能力值:
( LV2,RANK:10 )
|
-
-
2 楼
检查是否可读:IsBadReadPtr
检查是否可写:IsBadWritePtr
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
lpNumberOfBytesRead不会小于nSize
所以你的问题根本不成立 哈
|
能力值:
( LV9,RANK:610 )
|
-
-
4 楼
IsBadReadPtr和IsBadWritePtr 只能用于本进程,对跨进程的读写操作是没用的
NumberOfBytesRead小于nSize这种情况也是存在的,有一个著名的错误叫“仅完成部分的readprocessmemory 或writeprocessmemory请求”。
楼主其实没必要担心, NumberOfBytesRead = nSize 时,调用一定是成功的。
0 <= NumberOfBytesRead < nSize 时,可以认为调用是不成功时,此时错误码299,意思就是那个“仅完成部分的readprocessmemory 或writeprocessmemory请求”。
触发这个错误也很简单,比如A进程有一块内存地址为0x100000,大小为0x1000,那么从 0x100000起读一块大小超过0x1000的内存,就会产生这个错误,此时NumberOfBytesRead是0
如果A进程有一块内存地址为0x100000,大小为0x12000,那么从 0x100000起读一块大小为0x18000的内存,也会产生这个错误,此时NumberOfBytesRead不是0,而是0xE000(内核跨进程拷贝内存时的分块大小,此时大小超过一块,但不足两块)
|
|
|