社区
进程/线程/DLL
帖子详情
如何判断一个指针是否有效?
antFightWithElephant
2012-08-21 08:41:06
我的目的是在远程注入一个进程,读取一段内存的数据,但是这段内存每次大小都会动态改变,但是都不会超过某个数值.
所以我遍历到这个数值为止.
问题是:如果当前的大小比这个固定数值小,我就可能会访问到野指针,然后目标进程就会崩溃.
各位有什么好方法?
...全文
929
8
打赏
收藏
如何判断一个指针是否有效?
我的目的是在远程注入一个进程,读取一段内存的数据,但是这段内存每次大小都会动态改变,但是都不会超过某个数值. 所以我遍历到这个数值为止. 问题是:如果当前的大小比这个固定数值小,我就可能会访问到野指针,然后目标进程就会崩溃. 各位有什么好方法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
antFightWithElephant
2012-09-04
打赏
举报
回复
谢谢各位
zhanshen2891
2012-08-22
打赏
举报
回复
可以用异常处理啊,就是对访问那段内存的代码加上异常处理。
w_xei
2012-08-22
打赏
举报
回复
如果不能用汇编重写底层的异常中断,就根据数据的值进行逻辑判断指针是否有效确定指针范围,另外如果只是读取,使用void指针一个字节一个字节读取一般不会崩溃吧
辰岡墨竹
2012-08-22
打赏
举报
回复
OD应该是利用驱动重写了异常中断,当CPU发生异常的时候不会崩溃,不过你自己写程序肯定用不了这个。
你只有好好得总结那个有效值的范围,做好检查。
antFightWithElephant
2012-08-22
打赏
举报
回复
好像都解决不了,难道就没办法了吗?
Eleven
2012-08-21
打赏
举报
回复
或者试下这两个API函数
IsBadReadPtr/IsBadWritePtr()
antFightWithElephant
2012-08-21
打赏
举报
回复
我用OD调目标程序,发现 dd 一个无效的地址,address points nowhere 程序并不会崩溃,dd命令应该也读取了这个位置的内存吧,OD用的是什么方法?
Eleven
2012-08-21
打赏
举报
回复
C Rumtime里有个函数
_CrtIsValidPointer()
Verifies that a specified memory range is valid for reading and writing (debug version only).
int _CrtIsValidPointer(
const void *address,
unsigned int size,
int access
);
OC
判断
给定的
指针
是否
是
一个
有效
的NSObject对象
#import <malloc/malloc.h> #import <objc/runtime.h> static sigjmp_buf sigjmp_env; void PointerReadFailedHandler(int signum) { siglongjmp (sigjmp_env, 1); } BOOL I...
c
判断
指针
地址
是否
有效
_知道
一个
人
是否
在撒谎,从这三个小动作中就可以
判断
出来,很
有效
...
想问一下,有几个人从小到大没有撒过谎的,可以说我们每
一个
人或多或少都撒过一些谎,而且有的时候,谎言都是
一个
套
一个
的,因为你要为了掩盖这个谎言,而要撒下其他的谎来掩盖当初的谎言。其实想要看
一个
人是不是在撒谎,其实从他的这三个小动作中就可以
判断
出来,非常简单的方法,一看就准能学会,而且也是非常
有效
的。【1】不敢直视你的眼睛很多人在撒谎的时候,是不敢看另
一个
人的眼神的,当进行有眼神的交流的时候总是出现闪...
c
判断
指针
地址
是否
有效
_如何
判断
两个IP地址
是否
在同
一个
网段?什么是子网掩码?...
对于ip地址我们前面通过多次文章,大家都有一定的理解,不过通过的留言,有部分朋友还是对子网掩码、ip地址的网段有些疑问,那么今天我们一起来解下这方面的内容。一、什么是子网掩码?在了解ip地址的网段之前,我们先来了解子网掩码,很多对网络了解不深的朋友都对子网掩码有些迷惑, 不了解它是用来干什么的?子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有
一个
作用,就是将某个IP地址划分成网络地址...
双
指针
(快慢
指针
)
判断
链表
是否
有环
双
指针
(快慢
指针
)
判断
链表
是否
有环 单链表的特点是每个节点知道下
一个
节点 如果用
一个
指针
来
判断
是否
有环,当没有环时,
指针
一直会指到链表的为即指到NULL,但是当有环时,
指针
将陷入死循环,因为环形链表中没有NULL
指针
作为尾部节点 while (head != null) head = head.next; return false; 找到一种经典解法 就是用两个指...
C语言
判断
一个
链表
是否
有环(快慢
指针
)
1、
判断
一个
链表
是否
有环(快慢
指针
) 兄弟们,算法好难!我相信我们的感受是一样的,下面是我对这道题的一些思考,以及在开始写的时候的一些疑问,希望对大家有帮助! /** * 写这题的时候我最疑惑的时候是,难道快
指针
每次走两步,难道不可能刚好把环给跳过了嘛,但是仔细想想是不可能的 * 因为fast = fast->next->next 就是说你虽然每次都吃两个苹果,但是你最终还是
一个
苹果
一个
苹果吃的, * 所以fast其实跨两个节点,也是
一个
一个
节点都要经过的,这样子的话如果fas
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章