游戏破解思路

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/XZ2585458279/article/details/79249938

游戏破解思路

最近在家无聊玩了玩微信小游戏,结果发现大神们写了破解游戏的python脚本(看样子还是喜欢我python),基于目前基础不牢、水平不够、时间不足(编不下去了。。。。)的综合原因,特意记录游戏破解的原理方便日后对问题的分析和理解。
此次记录的最近较火的三款游戏,分别是旅游青蛙、跳一跳、星途WeGoing的破解思路。

旅游青蛙

针对这款游戏,视乎相对于其他两个游戏而言,破解它并没有多大难度。可能由于它是一款单机游戏的缘故吧!想起以前用”八门神器”修改游戏内存数据一样即可。当然大神还提供了修改游戏存档的高端操作。
具体细节可见旅行青蛙破解分析从内存到存档再到改包

破解原理

  1. 内存修改 → GG修改器修改数值,需root;
  2. 存档修改 → 存档十六进制修改,无需root;
  3. apk修改 → Unity3D游戏脚本修改,无需root.

看雪家的出品,当然只有默默崇拜了。

跳一跳

可能是这款游戏,第一次让我看见了python脚本的强悍,当然我是站在大神的角度来看这个问题的。
从中我们可以看出adb(Android Debug Bridge tools),好吧我们称为安卓调试桥,通过它可以进行手机与电脑互传文件、截屏、点击屏幕等高端操作,换句话说,就是用代码来玩手机。这个不错!
在这找确定点的时候,表示此刻真的不是很理解,颜色区间可能辨别,但是先打个桩,日后在进行研究。

原理说明

将手机点击到《跳一跳》小程序界面

用 ADB 工具获取当前手机截图,并用 ADB 将截图 pull 上来

adb shell screencap -p /sdcard/autojump.png
adb pull /sdcard/autojump.png .

计算按压时间

手动版:用 Matplotlib 显示截图,用鼠标先点击起始点位置,然后点击目标位置,计算像素距离;
自动版:靠棋子的颜色来识别棋子,靠底色和方块的色差来识别棋盘;

用 ADB 工具点击屏幕蓄力一跳

adb shell input swipe x y x y time(ms)

源码地址

教你用 Python 来玩微信跳一跳

编程思路

=== 思路 ===
核心:每次落稳之后截图,根据截图算出棋子的坐标和下一个块顶面的中点坐标,
根据两个点的距离乘以一个时间系数获得长按的时间

识别棋子:靠棋子的颜色来识别位置,通过截图发现最下面一行大概是一条
直线,就从上往下一行一行遍历,比较颜色(颜色用了一个区间来比较)
找到最下面的那一行的所有点,然后求个中点,求好之后再让 Y 轴坐标

识别棋盘:靠底色和方块的色差来做,从分数之下的位置开始,一行一行扫描,
由于圆形的块最顶上是一条线,方形的上面大概是一个点,所以就
用类似识别棋子的做法多识别了几个点求中点,这时候得到了块中点的 X
轴坐标,这时候假设现在棋子在当前块的中心,根据一个通过截图获取的
固定的角度来推出中点的 Y 坐标

最后:根据两点的坐标算距离乘以系数来获取长按时间(似乎可以直接用 X 轴距离)

详细教程

使用python玩跳一跳超详细使用教程

星途WeGoing

说实话,这个游戏的破解操作加深了我对抓包改包的操作,当然尤其是手机抓包的高端操作。
这篇文章加深了我对网络知识的运用,当然请出这篇博文。
HTTPS抓包与手机抓包,看这一篇就够了

原理说明

  1. 通过抓包分析《星途wegoing》的成绩上传报文

  2. 分析JS查看各个参数的生成规则

  3. 完成代码模拟仿真

  4. 将抓包得到的sessionid拷贝出来,传给程序使用

  5. 返回{“errcode”:0,”errmsg”:”ok”,”data”:{“tile_list”:[]}}即成功

源码地址

微信小游戏《星途wegoing》刷分代码!

作者简书

微信小游戏《星途wegoing》刷分代码

自我总结

无论是分析内存、存档改包,还又是图片分析,定位跳点,亦或者证书安装,抓包改包;这一系列的操作并不是计算机领域的某一个角落,它需要的综合技能,以及对思想的解放斌不是靠投机取巧可以实现的,还是那句话,技术需要沉淀。当然兴趣是最好的老师。

猜你喜欢

转载自blog.csdn.net/XZ2585458279/article/details/79249938
今日推荐