Java 破解腾讯微信跳一跳(几乎每次命中中心点,目前最高 19844 分)

Tips:本文字数1785,阅读时间5分钟

文章转载知乎,作者:就不告诉你,网易 资深研发工程师,浙江大学,计算机应用技术

我没有想到有那么多同学问我如何导入项目。主要的问题在于:

如何导入项目?

为什么不上传wechat_jump_hack.iml文件?

点击此处,查看详细教程

2018/01/04优化

根据同学们的反馈,我今天午休时,抽了20分钟,优化了一下算法。

1.提高瓶子的识别率。

由于瓶子的颜色比较接近,新实现了一种算法用于瓶子的瓶盖的识别。效果如下:


2. 提高出现特殊盒子时,下步的计算。

特殊盒子,例如留声机,他的动效时间很长,而且很大,对下一步的识别产生干扰。因此,改进了一下算法,减少干扰的影响。效果如下:

3. 新增加了HackTest.java文件。

大家在运行Hack.java后,会在wechat_jump_hack/out/production/wechat_jump_hack/imgs/input/目录下存放截图文件。运行Hack.java结束后,再运行HackTest.java,会在wechat_jump_hack/out/production/wechat_jump_hack/imgs/output/下生成input目录中的截图的位置标记。

        红点表示玩家位置;

        绿点表示下一个盒子的边界点;

        蓝点表示下一个盒子的中心点;

如果觉得跳得不准的同学,请运行HackTest.java文件,观察标记的位置是否准确。如果准确的话,请自行调整弹跳系数。笔者无法做到我所用的弹跳系数适用于所有的设备。

4. 添加对命中中心点的统计

screenshot, file: /Users/chenliang/SkylineProjects/wechat_jump_hack_1/out/production/wechat_jump_hack_1/imgs/input/1092.png

438, 364

pos, x: 404, y: 1104

find myPos, succ, (404, 1104)

191, 217, 194

232, 258, 266

top, x: 732, y: 803

true

left, x: 599, y: 880

right, x: 868, y: 880

whitePoint: 752, 715, 887, 866

find whitePoint, succ, (733, 876), centerHit: 901, total: 1093

find nextCenter, succ, (733, 876)

distance: 554

/Users/chenliang/Library/Android/sdk/platform-tools/adb shell input swipe 400 400 400 400 554

根据我的运行结果,命中中心点的概率,大约为82%~85%。因为微信也在改进,命中中心点的难度也在提高 。

一. 效果展示

程序控制小人自动跳,几乎每次命中中心点。

为了更好的展示运行效果,我贴一个刚刚录制的视频。http://v.youku.com/v_show/id_XMzI4NzM4MzI0NA==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2

如果你的运行效果,不像这个视频中所示,请一定要认真阅读“温馨提示”这个章节。

欢迎大家与我交流意见。附上 GitHub 地址 burningcl/wechat_jump_hack

破解过程,总共花了3个小时,不断地调整算法与参数,因此代码比较乱,还请见谅。

喜欢这个程序的同学,求在GitHub上加star。



二. 实现原理

具体识别的算法,我现在没有时间总结了,大家可以先看源码。源码中部分参数是在笔者的手机上进行调试的(分辨率为1080),大家可以根据自己手机,进行相应修改。

主要步骤

识别玩家位置

如下图中白色空心方格所示:


1、识别目标方块位置

如下图中红色实心方格所示,识别最上面的顶点,最左边的点,与最右边的点,从而计算出中心点:


识别目标方块中心圆点的位置

如果你前一次踩中中心点,会有下一个中心点的提示(一个白色的圆点)。

流程

1、通过ADB截屏;

2、通过ADB将截屏保存到电脑;

3、识别玩家位置;

4、识别目标方块位置;

5、识别目标方块中心圆点的位置;

6、如果第5步成功,则取第5步的中心点为下一步的位置;否则,取第4步的中心点为下一步的位置;

7、计算玩家位置与下一步的位置,乘以一定的系数,得到长按的时间;

8、通过ADB,触发长按;

三. 运行教程

1、准备Java运行与编译环境,使用Java8以上,IDE推荐使用Intellij;

2、安装Android SDK;

3、使用 git工具clone项目,地址为https://github.com/burningcl/wechat_jump_hack

4、使用IDE(笔者使用Intellij)import该项目;

5、准备好一部已经打开开发者模式的Android手机;

6、请确认是否adb已经联接上你的手机;如果adb连接失败,则会导致截图与拉取截图失败,提示“find myPos, fail”;如果连着多个Android设备的话,最好关到只有一个;

7、打开开发者选项,找到“USB调试(安全设置)允许通过USB调试修改权限或者模拟点击”(在mui上是这样的,在其他手机上,应该也是差不多这样)这个开关,打开它;如果这个权限没有授予,则不能正常触发弹跳;

8、修改com.skyline.wxjumphack.Hack中ADB_PATH,将其改为你自己的ADB位置;

9、打开微信,打开跳一跳游戏,并点击开始;

10、  运行程序(Hack.java中的main方法)吧,骚年,观察它自动跳动;

四. 温馨提示

1、有些同学反馈,程序报错,提示找不到文件或者“find myPos, fail”。请确认是否adb已经联接上你的手机;如果adb连接失败,则会导致截图与拉取截图失败。

2、有些同学反馈,位置都计算出来了,但是没有触发弹跳。打开开发者选项,找到“USB调试(安全设置)允许通过USB调试修改权限或者模拟点击”(在mui上是这样的,在其他手机上,应该也是差不多这样)这个开关,打开它。

3、这个小游戏,后来腾讯好像加了一些干扰的动效,会干扰位置计算。后期可以优化。

4、因为我总共才花了3小时去破解,主要的时间都花了前期的识别算法的优化上。代码中,还有很多魔法值什么的,代码也比较乱。如果要阅读的话,还请见谅。

5、至于位置计算的准确性,请运行MyPosFinder.java与NextCenterFinder.java中的main方法,观察生成文件,查看标记的位置是否正确。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269