找回密码
 立即注册
VIEW

CE修改沙盒类游戏:《饥荒》实现永不饥饿!出乎意料所有数据类型是双浮点

2017-6-28 23:20| 查看: 88

        饥荒这款游戏是一款沙盒游戏,是沙盒游戏中的迷你版,特别的小,但是做的非常精致用心。这款游戏由于是老外制作的,所以其里面的内存数据都和大陆的游戏不同,也就是不走寻常路的。这款游戏的饥饿度,脑力度,材料个数等都采用的双浮点数。 饥饿度用双浮点数就算了,但是材料的个数按照大型程序设计节约内存资源的角度出发,最好是1字节整数,最多2字节整数。好了不多说,我们开工吧,准备好CE工具和游戏!
        
       如上图,饥饿度81,这个时候我们不能用CE直接搜索双浮点数81 ,这样是搜索不到的。因为其实是带有小数点的,目前还不知道具体的小数点是多少。所以这个时候我们只能把CE扫描类型换成 "两数之间的值" ,也就是搜索  78 到 82的之间数值。操作如下:

然后不要吃东西,每过10秒钟(期间人物的会逐步饥饿下去,数值会变小),用CE 设置扫描类型为"减少的数值",再点击"再次扫描",如下图所示

循环上面这个过程。最终我们找到人物 胃部值的内存地址如下:

由于找到的内存地址是动态内存地址不是绿色的,游戏重启会变!接下来,我们来跟踪 这个内存地址,找出其 反汇编地址。

结果发现如下的反汇编代码,修改为NOP指令即可实现 胃部数值不再降低。


 
返回顶部