前言:这一期的破解教程,有新的知识内容出现啦!

这一期破解的游戏是找不到之前的关键字,怎么破解呢?

破解成功之后,添加一个Toast弹窗提示由XX破解,这操作该如何实现呢?请往下看~

链接: https://pan.baidu.com/s/1dF8jKdF 密码: 6666

破解步骤:

1.试玩,找不到关键字

由图片可以看出,这是中国移动的咪咕游戏,这款游戏是接入了咪咕游戏基地的sdk,如果你不懂sdk,那么我也不会解释,百度是你的好老师!

游戏使用了咪咕游戏基地的sdk,其中的smail文件一般都有Billing这个关键字,那么我们试着搜索看看

2.查找Paycallback关键字

可以看到,我们经过文件类型筛选之后,还是有许多的结果,这时我们可以再原来的关键字上再加上个pay进行搜索

嗯,这下子结果就是少了很多了,咪咕游戏这类sdk,关于支付的类名一般都是含有callback,所以我们可以定位到图中的三个含有callback的文件,第一个我就不圈出来了

我们一个个使用工具去查看其的java伪代码,则可以再次精确定位到ChinaBillingPayCallBack$1这一个文件

3.理解支付逻辑

我们查看ChinaBillingPayCallBack$1这个smail文件的伪代码

可以看到,是if与else if的嵌套的分支语句,每个判断都是给i赋值,估计大家看得不太懂,说实话,其实我也不太懂,那个for循环里面有个setResultCode,其中的参数为i,个人觉得这个应该是支付成功的关键代码,问题就来了,我们不知道i等于几时,这个setResultCode才是支付成功,这个时候,我们有什么办法吗?答案很简单,一个个地试,我们将i的值改变,测试APP,就是可以知道i为1的时候,就是会进入支付成功的方法

回到smail文件中,与之前的java伪代码对比,可以发现v1就是那个i值,之后,就好办了,我们跳过所有的判断语句,修改v1的最后的值进行测试

PS:const/4 v1,0x1 这个的意思为给v1赋值为1,如果是const/4 v1,0x2,就是给v1赋值为2,我这里只是简单的说明,想要深入的可以百度搜索一下smail中const指令

我们测试到1,就会发现支付已经成功了,这也算是成功破解了,不过,我觉得还是得再分析分析这smail文件

4.破解思路

我们分析一下上述的smail文件,首先,v1接收参数p1的值,之后,判断参数p1与v2的值,相等的话也就是v1为1,之后向下执行,从前面我们知道,v1为1的时候,就是支付成功的代码,我们可以删除掉这一行的判断从而实现破解的功能,不相等的话就是跳转到cond_1,记住末尾的cond_0和goto_0这两个,之后会提到

我们从上面跳转到了cond_1这里,v2就是被赋值为3了,之后,参数p1又是接着与v2比较,相等则是往下执行,也就是给v1赋值为3,跳转到goto_0,也就是之前上面说的地方,不相等就是跳转到cond_2,以此类推,大家应该能理清楚大概逻辑了吧

PS:大家可能不知道if-ne这个语句的作用,可以直接使用鼠标放在上面,之后就会浮出提示

两种方法破解:

上面都有提及到了,这里写个总结

1.删除第一个判断语句,不跳转到之后去判断,,v1就是为1

2.在所有判断结束之后,给v1赋值为1

5.增加Toast提示

接下来就是新学的内容了,重点来了!!

首先,先确定开始的界面是哪一个activity,我使用了当前activity 这款APP,之后运行游戏,左上角就是会有提示,我们可以知道CTRMActivity这个

第二步,我们需要找到这个activity对应的smail文件,直接搜索(如果你不嫌麻烦的话,可以找包名,依次地寻找)

我们在a文件夹那里,右击,之后选择打开方式->打开文件路径

第四步,新建一个txt格式文件,修改文件名为craker,之后把扩展名改为smali(呃,好像发现我之前都是写成了smail,大家注意下啊,我就不修改了)

返回到Androidkiller中,点击右边的刷新按钮

之后,你就发现有craker这个smali文件了,打开它,写上下列代码,可以看到,有个toast的字符串,我们只需要将这里修改成我们想要Toast提示的信息,如果是中文的话,需要转换成Unicode,直接使用Androidkiller自带的工具转换吧,前面几篇也是有说过,我就不多说了

.class public Lcrack;
.super Ljava/lang/Object;
.source "craker.java" .method public static toast(Landroid/content/Context;)V
.locals
.prologue const-string v0, "by stars-one" const/ v1, 0x1 invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; move-result-object v0 invoke-virtual {v0}, Landroid/widget/Toast;->show()V return-void
.end method

最后,我们在CTRMactivity中的onCreate方法里写上调用的代码,就大功告成了

invoke-static {p0}, Lcrack;->toast(Landroid/content/Context;)V 

诶,等等,onCreate方法呢?没有??擦嘞,不可能。。好吧,我们找错了,我们再运行一遍游戏,我看到了一个ChannelSplash,就决定是它了,去Androidkiller找找看(下面的图片是我已经修改成功了的图片,请忽略弹出的Toast)

这次找对了,这里有onCreate方法,之后的步骤与上面的一样,这里我就不多说了,注意一下最后调用代码添加的位置,还有记得删除掉之前在CTRMactivity中添加的代码

成功了,不过想到了activity的模式,好像onstart方法也是可以用,刚才的那个CTRMactivity就是有一个onstart方法,我把前面的删除,之后按照之前的步骤,尝试在CTRMactivity中里面写上了调用的那一段代码

之后,测试的时候,发现成功显示

6.删除权限,测试

我们可以把这个APP的名字更改了,这样显得比较高端哈!

直接搜索割绳子就行了,之后进入到string文件,修改app_name

这里不得吐槽一下,这个游戏好像删除发送短信会出错,进入游戏的时候提示应用已停止,暂时还不知道解决,有哪位大神看到这里能知道如何解决这个问题,希望能够告知~~感激不尽!!

还有,悬浮窗广告还不知道怎么破解,有大神能教教我吗~~

Android破解学习之路(五)——Android游戏 割绳子:魔法 + 在游戏加入Toast弹窗提示的更多相关文章

  1. Android破解学习之路(十五)—— 【Unity3D】洛菲斯的呼唤(Lophis roguelike)无限金币(道具)的实现 破解

    前言 之前玩月圆之夜玩的挺high的,最近又找到了个与月圆之夜类似的卡牌游戏,游戏名为Lophis roguelike,中文翻译名洛菲斯的呼唤. 但是这个与月圆之夜有所不同,如果失败了,只能从开头重新 ...

  2. Android破解学习之路(十四)——【Unity3D】王牌大作战破解

    一.前言 今天带来的是王牌大作战的破解教程,游戏下载的话,我是直接去TapTap官网下载的 支付宝内购破解用老套了,今天学点破解的新花样吧!! 二.支付宝内购破解 支付宝的内购破解已经很熟悉了, 直接 ...

  3. Android破解学习之路(一)——简单的登录破解

    最近突然心血如潮开始学了Android破解,初入门,便是将经验记录下来. 准备工作: 1.一个登录简单APP 在我们破解之前,我们需要做一个简单的登录APP,输入相应的账号与密码便是弹出登录成功的对话 ...

  4. Android破解学习之路(三)——Android游戏 切水果破解

    经过前两篇破解教程,想必大家也是明白了破解的简单流程了. 先对APP进行试用,了解APP运行的大概流程,之后从APP中找出关键字(一般的关键字差不多都是支付失败),之后使用Androidkiller进 ...

  5. Android破解学习之路(四)——Android游戏 3D摩托飞车破解

    经过前面三期的破解,想必大家已经非常熟悉破解的流程,这一篇也算是练手项目,我们继续来练习吧 apk下载地址:链接: https://pan.baidu.com/s/1sl3b3R3 密码: 6666 ...

  6. Android破解学习之路(六)——Android游戏 方块冒险 破解

    前言: 可能大家看到标题会有些懵逼,以为我发错了,这应该是五才对吧,其实,五我已经发了,不过被管理大大移出首页了,不知道这一篇是不是也会是同样的命运.. 今天所写的是关于支付宝内购的破解 原版 链接: ...

  7. Android破解学习之路(二)——Android游戏 滚动的天空破解

    经过上一期的破解教程,相信大家跟我一样都是对破解是初入门,我们破解的目的是什么? 赚钱吗?百度上一大堆破解版的应用,破解的人有赚到钱吗?实实在在的说,其实也是方便自己而已. 玩个游戏,感觉过不去了,来 ...

  8. Android破解学习之路(九)—— 练手破解游戏集合

    1.魔塔50层 https://www.taptap.com/app/48859 选择需要购买的东西,之后在支付宝支付界面点击取消,即可支付成功 2.布布合丁丁 https://www.coolapk ...

  9. Android破解学习之路(十二)—— GP录像汉化过程及添加布局

    前言 最近闲着发慌,想起了很久之前就想汉化的一款录像APP,APP大小不到1MB,但是好用,本期就给大家带来汉化的基本步骤以及如何在APP中添加我们汉化的信息 汉化思路 查找关键字 关键字挺好找的,由 ...

随机推荐

  1. java equals 和 == 的区别

    )1. == 可以用来比较基本类型以及引用类型.在基本类型中 == 比较的是两个变量的值是否相等.在引用类型中,== 比较的是两个对象的内存地址是否相等. )2. equals 只能用来比较引用类型. ...

  2. Android studio导出配置

    在使用 Android Studio 时,往往会进行一些设置,比如 界面风格.字体.字体大小.快捷键.常用模板等.但是这里的设置只能用在一个版本的 Android Studio 上,如果下载了新的 A ...

  3. ionic3中NavController类push setRoot相关问题解决

    今天在测试app的时候发现,登录页跳转到首页后,会加载两次数据.百思不得其解,查看了所有代码也没能发现问题.最终抱着尝试的态度,动了如下代码: if (suc) { //this.navCtrl.pu ...

  4. TreeSet(一)--排序

    TreeSet(一) 一.TreeSet定义:      与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的.            1)TreeSet类概述 ...

  5. Numpy数组的基本运算操作

    一.算术运算符 In [3]: a = np.arange(0,5) Out[3]array([0, 1, 2, 3, 4]) In [4]: a+4 Out[4]: array([4, 5, 6, ...

  6. 装饰模式(Decorator)

    装饰模式(Decorator) 顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下: Source类是被装 ...

  7. npm常用命令整理

    npm是一个NodeJS包管理跟分发工具,已经成为了非官方的发布node模块(包)的标准.它可以帮助我们解决代码部署上的一些问题,将开发者从繁琐的包管理工作中(版本.依赖等)解放出来,更加专注于功能上 ...

  8. dij洛谷电车

    //Gang #include<iostream> #include<cstring> #include<algorithm> #include<cstdio ...

  9. Codeforces 890B - Vlad and Cafes Set

    B. Vlad and Cafestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputou ...

  10. Linux磁盘分区(二):删除

    ***********************************************声明************************************************ 原创 ...