程序员就是这么皮,逆向Google maps snake游戏

2024-03-06 06:48

本文主要是介绍程序员就是这么皮,逆向Google maps snake游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为了庆祝愚人节,Google在Google Maps应用安卓版和IOS版本中加入了snake游戏。Check Point研究人员对该应用进行了逆向破解……你不知道的是逆向竟然使用的是远程调试的方法。

本文详细介绍远程调试进行逆向的全过程。

首先用Genymotion在虚拟设备中启动Google maps应用,然后进入snake游戏。中国菜刀

程序员就是这么皮,逆向Google maps snake游戏

程序员就是这么皮,逆向Google maps snake游戏

看起来该应用是基于WebView的,因此研究人员打开了chrome开发者攻击远程调试,如下图所示:奇热影视

程序员就是这么皮,逆向Google maps snake游戏

研究人员发现网站中sources tab中只有一个有趣的JS文件v18.js。进一步分析该文件研究人员发现了一些函数。

函数fa()的作用是开始一个面积为20×20的面板:

this.height = this.width = 20;

变量width和height分别表示游戏板的宽度和长度,因此研究人员在源码中搜索了width和height然后找到了如下函数F(a,b):

程序员就是这么皮,逆向Google maps snake游戏

函数F(a, b)好像是检查snake的身体的坐标是否超过面板的限制。研究人员想要删除该函数中的条件使该函数返回的结果都是true,这样游戏就进入了无敌(无限)模式。

因此研究人员在远程console中输入了inspect,然后将F(a,b)函数修改为:

程序员就是这么皮,逆向Google maps snake游戏

然后玩游戏就进入了无敌模式,界面如下图所示:

程序员就是这么皮,逆向Google maps snake游戏

图1:无敌模式

但是研究人员的目的是对战赢取积分,因此进入下一步逆向:

通过逆向调用栈,研究人员发现有很多对函数wa(a)的调用。研究人员进一步分析该函数发现该函数的递归的,负责请求帧动画。Wa(a)调用函数xa(a, b)和ya(a)来生成生成组成游戏的小方块和面板。

函数xa(a, b)代码如下所示:

程序员就是这么皮,逆向Google maps snake游戏

其中有2个参数是a和b。a是全部变量Q的一部分,含有表示游戏面板的数组,还可以看到train(M)火车,人和路标(K)。该函数还负责计算玩家得分并保存在c.i中,与Q.b的值相同。

程序员就是这么皮,逆向Google maps snake游戏

图2:表示游戏界面的数组

表示的界面如下所示:

程序员就是这么皮,逆向Google maps snake游戏

图3:游戏页

xa(a)会调用函数sa(a)(如图4),函数sa(a)负责当新的小人创建后来生成随机坐标。如果多次调用该函数,就会生成多个小人,如图5所示。

程序员就是这么皮,逆向Google maps snake游戏

图4: 调用函数sa(a)

程序员就是这么皮,逆向Google maps snake游戏

图5:调用的结果,创建了很多小人

虽然多次调用sa(a),也接到了很多人,但是研究人员发现分数并没有变。当火车接到乘客后,会调用函数ka(a,b)。因此还需要修改该函数来增加分数,并更新在屏幕上。

程序员就是这么皮,逆向Google maps snake游戏

图6: 更新的函数

火车的每部分的坐标都在Q.b.o.b中,其中第一个元素表示火车的第一节车厢。

程序员就是这么皮,逆向Google maps snake游戏

图7: 表示火车车厢的数组

研究人员创建了一个简单的AI算法,算法逻辑如下:

程序员就是这么皮,逆向Google maps snake游戏

图8:AI逻辑

snake执行如下状态机:

· 当X=19时,继续向下直到Y=19;

· 当X=19且Y=19时间,继续向左直到X=0;

· 进入Z字形状态机:

a. 向上一次,然后向后,直到X=18;

b. 向下一次,然后向左,直到X=0

c. 返回步骤A.

· 当Y=0时,向后,直到X=19

· 回到步骤1

代码参见gihub地址:https://github.com/romanzaikin/Google_Maps_Snake_Hack

Demo视频如下:

程序员就是这么皮,逆向Google maps snake游戏

参考视频:https://research.checkpoint.com/wp-content/uploads/2019/04/snake3.mp4

这篇关于程序员就是这么皮,逆向Google maps snake游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779164

相关文章

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

国产游戏行业的崛起与挑战:技术创新引领未来

国产游戏行业的崛起与挑战:技术创新引领未来 近年来,国产游戏行业蓬勃发展,技术水平不断提升,许多优秀作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,国产游戏已实现质的飞跃。然而,面对全球游戏市场的激烈竞争,国产游戏技术仍然面临诸多挑战。本文将探讨这些挑战,并展望未来的机遇,深入分析IT技术的创新将如何推动行业发展。 国产游戏技术现状 国产游戏在画面渲染、物理引擎、AI

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

第四次北漂----挣个独立游戏的素材钱

第四次北漂,在智联招聘上,有个小公司主动和我联系。面试了下,决定入职了,osg/osgearth的。月薪两万一。 大跌眼镜的是,我入职后,第一天的工作内容就是接手他的工作,三天后他就离职了。 我之所以考虑入职,是因为 1,该公司有恒歌科技的freex平台源码,可以学学,对以前不懂的解解惑。 2,挣点素材钱,看看张亮002的视频,他用了6000多,在虚幻商城买的吸血鬼游戏相关的素材,可以玩两年。我

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

nyoj 1038 纸牌游戏

poj 的一道改编题,说是翻译题更恰当,因为只是小幅度改动。 一道模拟题,代码掌控能力比较好,思维逻辑清晰的话就能AC。 代码如下: #include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct node{char c[5];int rk;char da[5];int nu

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException异常

用Gson解析json数据的时候,遇到一个异常,如下图: 这个异常很简单,就是你的封装json数据的javabean没有写对,你仔细查看一下javabean就可以了 比如:我的解析的代码是             Gson gson = new Gson();             ForgetJson rb = gson.fromJson(agResult.mstrJson, For

如果出一个名叫白神话悟空的游戏

最近黑神话由于与原著不符引起了原著派的争议。 所以我在摸鱼的时候想到如果游科或者某个别的公司“痛改前非”不夹带私货完全复刻吴承恩百回版剧情制作一个“重走西游路”的游戏,会有一个什么样的销量?(设定为原著派已经多方渠道认证,此游戏的确没有夹带私货,绝大部分复刻了原著剧情) 游戏玩法我想了几类 超长线性有岔路蜈蚣形状地图,蜈蚣的腿部是探索区域和支线,重走西游路线,开篇就是开始取经前唐玄宗御弟cg