身为一个手残,小时候玩游戏经常不能通关,于是各种修改器即是我的选择。小时候会用一些什么金山游侠之类的本土修改器,但是使用过程中往往有一个问题:游戏重新开始,或者软件关了重开后上次搜索出来的结果就不能再次使用了。当时也是对这类问题一头雾水,只好使用别人做好的修改器。
使用Cheat Engine查找并修改数据
是个人都会的搜索–>改变数值–>继续搜索–>改变数值–>再搜索–>找到地址。
找到正确地址后,通过下内存读取/内存写入断点找到修改此资源的汇编语句,通过该汇编语句寻找该地址的基地址与偏移量,并在此地址附近寻找有关资源数据。
寻找资源地址的基地址与偏移量
比如说,通过搜索寻找到了目标地址为 0x6937d54 ,通过下断点的方式找到了写入的汇编语句为 movss [eax+0x04],xmm2 ,其中 _eax=0x6937d54_。 那么这个eax的值即可能是基址,0x04即是偏移量。而这个eax是每个游戏进程,甚至每一局游戏都是不一样的,那么需要找到指向eax的指针,来确定新游戏中eax的值是多少,而不用每一局新游戏都进行一轮搜索了。
一般游戏的一类资源都是存在同一个结构体中,所以我们可以观察不同偏移量的内存数值是否即是我们需要寻找的其他数值,从而进行下一步操作。