吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19740|回复: 28
收起左侧

[游戏安全] 记一次简单的CE+反汇编实现反加

  [复制链接]
什么都只会一点 发表于 2019-8-7 17:14
【前言】前几天在某直播平台看到主播玩的一款游戏,突然想玩一下,奈何自己太菜,也就有了现在的技(you)术(xi)交(po)流(jie)


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


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


【开始操作】
我们先进游戏看一下,可以看到这里有一个食物的数量
01.png
使用CE修改器找到对应的动态地址,搜索方法这里就不详细演示了
02.png
正常的修改思路就是找到这个动态地址的基址,所以单击这个地址,右键,选择"找出是什么访问了这个地址"
03.png
但是我们看到下面的内容,没有偏移?
04.png
尝试性的搜索了一下这个地址,并没有相关基址,于是我就放弃了继续找基址的想法(本人没有多少找基址的经验,自身实力不足)
换种修改思路,我们等待一会儿,直到出现食物减少
05.png
我们可以看到访问代码处多了四行,所以可以判断出,食物减少会在057FA46~057FAFD7之间
06.png
我们单击第一个,选择"显示反汇编程序"
07.png
可以看到反汇编代码,我来简单的翻译下
08.png
第一行是将12BBBE9C(也就是当前食物地址里面的值)赋值给了ECX寄存器
第二行是将另一个地址里面的值赋值给了EAX寄存器(可以看出来这里面的值就是食物减少的值)
第三行是用ECX(食物的值)里面的值减去EAX(食物减少的值)里面的值,再存进ECX寄存器里面


所以代码也就很明了了,双击第三行,将sub修改成add,保存
09.png
进游戏实验一下,修改成功
10.png

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

免费评分

参与人数 4吾爱币 +10 热心值 +3 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xzl9552547 + 1 谢谢@Thanks!
wangxing529 + 1 + 1 我很赞同!
晨泽丶 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

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
清晰  一下子就懂了,蟹蟹分享呢。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 19:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表