解读内存转储

解读内存转储

这里我们运行binarybook-master\chap02\shooting\shooting.exe
另外还需要使用万能进程内存编辑器:兔耳旋风
运行shooting.exe,先玩一会攒点积分,空格是发射,上下箭头是增减能量
解读内存转储_第1张图片

兔耳旋风查看shooting.exe

解读内存转储_第2张图片
解读内存转储_第3张图片
主线程的ESP寄存器的值为0019FBF4,也就是栈地址。

ESP的值在每个环境上都不一样,0019FBF4就是这个栈地址的起点

当前得分为87,我们在栈数据中搜索"87"这个值

Alt+F打开检索窗口

解读内存转储_第4张图片
双击该地址,主窗口就跳转到该地址

修改一下光标处的值,随便改
解读内存转储_第5张图片
然后返回shooting.exe,可以发现得分发生了变化[嘻嘻]
解读内存转储_第6张图片
在这种情况下,很难达到的高分也就容易被修改出来了

同样的也可以修改能量ENERGY
解读内存转储_第7张图片

解读内存转储_第8张图片
成功将ENERGY的值从14变成了30

获取内存转储

随着程序的运行,内存中的数据会不断实时变化,如果要保存某个时刻的状态(快照),我们就需要内存转储,将数据保存为文件

解读内存转储_第9张图片
操作系统会按照可执行文件中的内容将程序加载到内存中,但内存中的数据与可执行文件中的数据并不完全相同。

你可能感兴趣的:(学习)