首页
社区
课程
招聘
[求助]进程内存地址空间探索
发表于: 2015-2-4 11:08 3444

[求助]进程内存地址空间探索

2015-2-4 11:08
3444
最近模仿CE写一款内存地址空间分析的小工具,来把自己的理论知识用于实践中证实一下,以求能够全面的了解进程内存机制。CE虽然强大但不适合编程扩展,而且目标程序如果开启了第三方保护系统CE就无能为力了,那么我就想实现一款绕过第三方保护的小工具。通过写小工具锻炼提高自己的技术能力。
工具的主要功能就是记录内存和按规则对比内存数值,如图:

我是把内存页属性为PAGE_READWRITE的全记下来对比。然后用自己写的游戏DEMO做实验。发现效果不理想,看上去应该是所有PAGE_READWRITE的内存都被对比了,但是找不出想要的内存数值,比如说人物坐标。
请问论坛里的大神,坐标信息不在属性为PAGE_READWRITE的页里吗?是否还需要读取其它属性的页?

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 345
活跃值: (57)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
1. CE没你想的那么简单,运用的技术挺多的~
2. 游戏数据一般都分配在堆上,建议搜索已分配堆列表,比用内存属性页靠谱
2015-2-4 11:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
1 有些数据是存在栈上面的。相关函数被调用,这些数据才会被初始化和使用。结束之后就释放了。
2 有些数据是存在堆上面的。这个整个进程全局可用,堆的属性是可读可写的
3 有些数据是存在数据段的,有些是可读可写,有些是只可读或者只可写的。一般像一些全局变量、静态变量等等。这些很可能随so或者执行程序加载。
大多数数据在堆上面,小部分在数据段上面。栈上面的数据难以捕获,除非将程序暂停住
2015-2-4 14:08
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
堆的内存页属性是否必须为PAGE_READWRITE?
2015-2-4 14:42
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不管堆还是栈,都一样,关键是能读到你想读的东西,搜索范围真不好确认,比较如一个800M的内存程序,你要搜全部,如果算法精确,对比合理,也要半个来小时。
2015-2-4 16:57
0
游客
登录 | 注册 方可回帖
返回
//