登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 217|回复: 4

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

[复制链接]

335

主题

335

帖子

1708

安币

手工艺人

发表于 2018-1-9 16:55:34 | 显示全部楼层 |阅读模式

        运行起来的同学,欢迎在评论区里,贴出自己现在中心点的命中率。

        如果有同学对Android无障碍服务熟悉并且有时间有精力,可以实现一个基于Android无障碍服务的外挂,那样就不需要连接ADB与电脑了。

        

        

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

        如何导入项目?

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

        点击此处,查看详细教程

        

        

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

        为了更好的展示运行效果,我贴一个刚刚录制的视频。v.youku.com/v_show/id_X…

        

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

        附上 GitHub 地址: github.com/burningcl/w… 欢迎大家与我交流意见。破解过程,总共花了3个小时,不断地调整算法与参数,因此代码比较乱,还请见谅。

2018/01/04优化

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

        

        提高瓶子的识别率。

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

        

        

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

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

        

        

        新增加了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文件,观察标记的位置是否准确。如果准确的话,请自行调整弹跳系数。笔者无法做到我所用的弹跳系数适用于所有的设备。

        

        添加对命中中心点的统计

[Java] 查看源文件 复制代码
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%。因为微信也在改进,命中中心点的难度也在提高

        

        对于最后的成绩无法提交

微信已经做了屏蔽措施,判定作弊无法上传数据。  感谢@imvin军的经验,在迫近最高分的时候拔掉数据线,手动操作几步,实测步数越多成功率越好。一. 效果展示

        

二. 实现原理

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

主要步骤

        

        识别玩家位置

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

        

        

        识别目标方块位置

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

        

        

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

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

流程

        通过ADB截屏;

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

        识别玩家位置;

        识别目标方块位置;

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

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

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

        通过ADB,触发长按;

三. 运行条件

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

        安装Android SDK;

        使用 git工具clone项目,地址为github.com/burningcl/w…;

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

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

        请确认是否adb已经联接上你的手机;如果adb连接失败,则会导致截图与拉取截图失败,提示“find myPos, fail”或者找不到文件“1.png (No such file or directory) ”;如果连着多个Android设备的话,最好关到只有一个;

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

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

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

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

四. 温馨提示

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

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

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

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

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

        

        

        

        

92

主题

8922

帖子

2069

安币

Android大神

Rank: 6Rank: 6

发表于 2018-1-10 10:56:25 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

8

主题

9062

帖子

-2048

安币

限制会员

QQ达人

发表于 2018-1-11 03:28:39 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

85

主题

9066

帖子

-2286

安币

限制会员

发表于 2018-1-12 02:05:21 | 显示全部楼层
支持,感谢,祝巴士越来越好~

14

主题

8760

帖子

-2372

安币

限制会员

发表于 7 天前 | 显示全部楼层
感谢分享,楼主V5~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

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