什么都只会一点 发表于 2019-8-7 17:14

记一次简单的CE+反汇编实现反加

【前言】前几天在某直播平台看到主播玩的一款游戏,突然想玩一下,奈何自己太菜,也就有了现在的技(you)术(xi)交(po)流(jie)


【示例游戏】Run!ZombieFoods!(国外游戏,因为有点大,我就没有压缩上传了,百度搜得到)


【所需工具】
CE修改器(爱盘自行下载)


【开始操作】
我们先进游戏看一下,可以看到这里有一个食物的数量

使用CE修改器找到对应的动态地址,搜索方法这里就不详细演示了

正常的修改思路就是找到这个动态地址的基址,所以单击这个地址,右键,选择"找出是什么访问了这个地址"

但是我们看到下面的内容,没有偏移?

尝试性的搜索了一下这个地址,并没有相关基址,于是我就放弃了继续找基址的想法(本人没有多少找基址的经验,自身实力不足)
换种修改思路,我们等待一会儿,直到出现食物减少

我们可以看到访问代码处多了四行,所以可以判断出,食物减少会在057FA46~057FAFD7之间

我们单击第一个,选择"显示反汇编程序"

可以看到反汇编代码,我来简单的翻译下

第一行是将12BBBE9C(也就是当前食物地址里面的值)赋值给了ECX寄存器
第二行是将另一个地址里面的值赋值给了EAX寄存器(可以看出来这里面的值就是食物减少的值)
第三行是用ECX(食物的值)里面的值减去EAX(食物减少的值)里面的值,再存进ECX寄存器里面


所以代码也就很明了了,双击第三行,将sub修改成add,保存

进游戏实验一下,修改成功


同样的,子弹数量,血量也可以进行类似的修改,这里只是以食物为例

jiangcs98 发表于 2019-8-8 11:14

什么都只会一点 发表于 2019-8-7 18:39
正常减少食物的逻辑是,先获取当前食物的数量,再减少,所以这里我认为"谁访问了"更容易获取到开头的位置 ...

"正常减少食物的逻辑是,先获取当前食物的数量,再减少,"

我感觉你的逻辑可能有点混乱,这个跟谁访问了更容易获得开头位置完全是说不通的吧。。

你要找的是食物减少的地址,那么谁改写,才是最直白不会出现其他“可能无关混淆”的数据,不过每个人有每个人的理解,你可能多破解几个游戏就知道这两者的关系了。

"然后就是这里的12BBBE9C并不是基址,退出游戏重进,这个地址并没有用"

这个就是基址.....
只是不是用普通的方法去运用。
需要用到aobscan,然后填写参数。

jiangcs98 发表于 2019-8-7 17:42


写的非常好,通俗易懂,可以作为案例来参考学习。

正常的修改思路就是找到这个动态地址的基址,所以单击这个地址,右键,选择"找出是什么访问了这个地址"
‘’‘’
这是不正常的修改思路...


然后说一个你找基址错误的地方。
正确的做法应该是:
右键点击这个地址,然后选择 “找出是什么改写了这个地址”
虽然说“谁访问了”这个可以看到更多数据,但是你这篇的确是写给新手看的,那么我觉得应该用更好的办法
也就是用“谁改写”
这样信息可以更加清晰明了。
12BBBE9C这个应该就是基址啦~




Avenshy 发表于 2019-8-7 17:25

学习到了感谢分享

saomu007 发表于 2019-8-7 17:26

感谢分享谢谢简单明了的讲解

什么都只会一点 发表于 2019-8-7 18:39

jiangcs98 发表于 2019-8-7 17:42
写的非常好,通俗易懂,可以作为案例来参考学习。

正常的修改思路就是找到这个动态地址的基址,所以单 ...

正常减少食物的逻辑是,先获取当前食物的数量,再减少,所以这里我认为"谁访问了"更容易获取到开头的位置。
然后就是这里的12BBBE9C并不是基址,退出游戏重进,这个地址并没有用

syncking 发表于 2019-8-7 21:02

jiangcs98 发表于 2019-8-7 17:42
写的非常好,通俗易懂,可以作为案例来参考学习。

正常的修改思路就是找到这个动态地址的基址,所以单 ...

看帖没实践我也是以为12BBBE9C地址就是基址。但是我下载这游戏看了      这是“12BBBE9C”每次打开游戏会变的它不是基址    很奇怪。

65302666 发表于 2019-8-7 22:31

syncking 发表于 2019-8-7 21:02
看帖没实践我也是以为12BBBE9C地址就是基址。但是我下载这游戏看了      这是“12BBBE9C”每次打开游戏会 ...

用CE里面的AOB定位地址就可以了

q6378561 发表于 2019-8-7 22:56

简单来说是利用aobscan这个函数特征码定位地址
具体用法就是在CE的脚本中顶部写
aobscan(参数1:命名,参数2:特征码)
然后调用这个命名就可以了

syncking 发表于 2019-8-8 07:29

65302666 发表于 2019-8-7 22:31
用CE里面的AOB定位地址就可以了

嘿我试了试可以    进入游戏看见100后,    搜索字节数组B8????????89088B47??8B0D????????83EC085150是能找到,但是怎么定位那个可变的地址,就是那串红色的。

晨泽丶 发表于 2019-8-8 08:06

清晰一下子就懂了,蟹蟹分享呢。
页: [1] 2 3
查看完整版本: 记一次简单的CE+反汇编实现反加