首页
社区
课程
招聘
[原创]飞车手游分析 & 加速,秒通关实现
发表于: 2025-8-2 19:35 7775

[原创]飞车手游分析 & 加速,秒通关实现

2025-8-2 19:35
7775

在NewStarCTF2024的时候碰到了一道比较有意思的飞车游戏题目(AmazingGame),刚好最近在学习游戏逆向的相关,打算纯使用修改器实现加速,并且记录一下分析过程来与各位师傅交流


深入分析文章:飞车手游Java层分析到Xposed模块实战


首先来说一下工具的选择,这里我选择的是GG修改器。有些人可能会问问什么不选择功能更强大的CE呢?的确,相比GG修改器,CE更加强大,搜索数据更快,但是经过尝试CEserver远程桥接Android设备有一个比较致命的问题——无法暂停游戏

我们即使使用了CEserver选择暂停游戏,Android端游戏仍在运行,更换其它游戏仍存在此问题

当然我们也可以使用GG修改器暂停,CE去扫描,这里我打算直接使用GG修改器搜索


用途: 存储Java对象、数组和其他动态数据。由Java虚拟机(JVM)管理,通过垃圾回收机制自动清理。

我们打开apk,发现是纯Java层的游戏

所以我们应该选择Jh(Java Heap)数据段(Java堆内存,会用于存储我们的对象信息)

首先我们要在开始游戏前打开自动暂停游戏选项,这会让我们打开GG修改器窗口的时候暂停游戏,更有利于我们搜索数据,避免数据变化提高我们定位数据的难度

首先我们来一局游戏,这时候根据经验其实我们会优先去寻找浮点型数据,因为速度,坐标这类数据在这类3D类游戏开发中主要会使用浮点数存储,但是我们可以先用DWORD搜一下试试

可以看到我们当前角色的速度是282,我们首先使用GG修改器的精确搜索方法搜索游戏282(tips:搜索期间游戏一定需要是暂停状态,否则数据变化会增大我们的分析难度)

现在回到游戏之后操作一下再返回数据界面,游戏中我们的速度达到了122,但是发现我们的数据都没有发生变化,所以这里面不会有我们要找的值

接下来我们尝试使用其他类型搜索数据,首选当然就是Float/Double了

在我们搜索float类型的数据的时候最好以范围的形式搜索,因为这里显示出来的速度是122,但是我们几乎不可能刚刚好让速度在浮点型的情况下到达122,所以为了避免数据遗漏我们还是给大一些的范围,像120~125这样


我们搜索到了如下的数据

但是当我们拿到一定量的数据的时候,尽量避免通过直接修改的方式确认有效数据,因为我们在无法确认自己数据有效性的情况下盲目修改可能会导致游戏崩溃,我们如果重新打开游戏,我们的游戏数据地址都会重新加载(除了一些全局变量/代码段),我们之前搜索到的数据可能会全部丢失,导致我们功亏一篑。或者我们的某些修改可能触发一些游戏的保护机制

但是这里很遗憾,我们搜索到的数据都是无效的,因为速度变成了122之后并没有让我们的任何一个数据变化为81


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

最后于 2025-10-9 12:34 被JSnow编辑 ,原因:
收藏
免费 245
支持
分享
最新回复 (118)
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
《关于我闲的没事把这玩意打通关这件事》
2025-8-2 21:50
3
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2025-8-3 00:12
0
雪    币: 1468
活跃值: (793)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
顾白 《关于我闲的没事把这玩意打通关这件事》
游戏大师!
2025-8-3 08:40
0
雪    币: 113
活跃值: (1540)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
CE还是好用的
2025-8-3 11:36
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
1
2025-8-3 12:41
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
感谢分享
2025-8-3 14:33
0
雪    币: 5617
活跃值: (6482)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
作为一个游戏开发者 我来揭秘一下 这个速度也不是什么加密,而只是在常见不过的游戏开发的技巧,游戏里的移速靠的是移动的坐标位移和时间。时间一般不怎么使用,因为最快就是0了,而使用位移则可以速度无上限。比如初始速度一个周期里只移动1个坐标单位  二级移速3个坐标单位,这样速度想怎么控制就怎么控制。你界面上看到的200 120这些速度是游戏开发者们为了玩家体验,仿真现实世界里赛车的速度km/h渲染的一个数字罢了。所以自然通过这种假数据是无法直接搜索到真实移速的。人类仿佛思维都固化了一般几乎在我了解的所有的赛车游戏里,游戏开发者们都会去做个车速表仿真现实世界赛车速度km/h。
2025-8-3 16:51
9
雪    币: 5617
活跃值: (6482)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
游戏它实际上是在仿真现实世界,你界面能看到的数值这些你只能信10%。不管是玩法策划 还是数值策划 他们在设计游戏世界元素的时候 都是在仿真现实里的元素。似乎脱离了现实元素参考人类就无法设想自己没见过的东西了。
2025-8-3 17:00
6
雪    币: 1468
活跃值: (793)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
木志本柯 作为一个游戏开发者 我来揭秘一下 这个速度也不是什么加密,而只是在常见不过的游戏开发的技巧,游戏里的移速靠的是移动的坐标位移和时间。时间一般不怎么使用,因为最快就是0了,而使用位移则可以速度无上限。比 ...
原来如此
2025-8-3 17:18
0
雪    币: 0
活跃值: (65)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢你的细致分析,受益匪浅!
2025-8-3 17:29
1
雪    币: 467
活跃值: (714)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
谢谢楼主分享
2025-8-3 19:46
0
雪    币: 104
活跃值: (7189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
666
2025-8-4 09:02
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
谢谢  
2025-8-4 09:23
0
雪    币: 205
活跃值: (3126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢分享
2025-8-4 09:34
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
6
2025-8-4 09:50
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
学习学习
2025-8-4 09:54
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
学习学习
2025-8-4 10:21
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
学习学习
2025-8-4 10:28
0
雪    币: 343
活跃值: (1761)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
6666
2025-8-4 10:31
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
66
2025-8-4 10:32
0
雪    币: 55
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
666
2025-8-4 10:35
0
雪    币: 299
活跃值: (803)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
哇  安卓挂
2025-8-4 11:25
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
学习学习
2025-8-4 11:33
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
666
2025-8-4 11:38
0
游客
登录 | 注册 方可回帖
返回