Android逆向之旅---破解"穿靴子的猫"游戏的收费功能
一、游戏收费分析
游戏收费非常正常的,可是玩游戏最恶心的就是你还没玩就要充值,非常恼火,事实上我不怎么玩游戏,主要是给小孩子们弄,比方如今好多小屁孩们喜欢玩水果忍者这个游戏。可是这个游戏在没有開始玩的时候就弹出个收费的界面:
这个是不可忍受的,尽管支付费用不是非常多。可是还是不想支付。这个对话框是强制性的,当点击取消就退出游戏了,所以这里必须支付成功了才干够继续玩耍。
二、寻找破解入口
前面已经看到了这个游戏入口收费场景,以下咋们就把这个功能给去掉就可以。从以往的破解经验来说我们有几百种方法把这个东西干掉。比方:不然这个收费解密展示,改动取消之后的逻辑代码不让其退出游戏等。
都是各种手段。本文就简单点做。直接让这个界面不展示。
操作非常easy。这个游戏没有加固。首先用apktool工具反编译。由于要找到这个界面入口,我们能够通过字符串进行搜索就可以,反编译之后在values/strings.xml文件里找到“好友代付”这个字符串内容:
找到之后。看到这个字符串的id是:gc_billing_net_contacts,这里能够不用在通过public.xml中的id值转化得到相应的int类型值。再去搜索了。能够直接到jadx中进行搜索就可以:
这里看到有一个BillingView类,从命名能够猜想这个应该就是上面那个收费的页面:
这个视图继承了LinearLayout布局,详细实现这里就不截图,从View的代码实现能够确定就是上面的收费页面。在看看这个类在哪些地方有调用:
到这里看到应该是两个地方。一个是BillingActivity类。一个是GameInterface类,那么就有两个分析路线了,这里用一个巧妙的办法直接定位到是哪个类,假如是BillingActivity类,那么当前的topActivity就是他。我们用命令查看当前设备的topActivity看一下:adb shell dumpsys activity top
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlhbmd3ZWkwOTEwNDEwMDAz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
这里看到并非BillingActivity类,所以能够断定,处理收费的页面是在GameInterface类中。那么直接进入这个类的getBillingView方法中:
然后查看这种方法在哪个地方被调用了,这里假设发现Find Usage菜单不好使,也能够直接全局搜这种方法:
这里看到有两个地方用到了这种方法,依旧是依照上面那个topActivity推断,不可能是DGCPaymentActivity这个类了,所以直接看以下那个类,点击进入就可以:
三、屏蔽收费入口功能
到这里就清楚了,这里通过一个Dialog来进行展示的,设置Dialog的contentView就可以。所以找到展示的入口了,干掉这个入口就简单了。找到相应的smali代码,直接凝视这行show代码:
然后在回编译又一次在打包就可以,只是可惜的是,执行时报错的:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlhbmd3ZWkwOTEwNDEwMDAz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
这里搜了一下,没有好的处理方法。最后直接把整个方法代码所有干掉。让这种方法称为一个空方法,直接用一个指令替换原来的代码就可以:return-void,直接方法返回:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlhbmd3ZWkwOTEwNDEwMDAz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
然后再次回编译打包就可以。这次就看不到那个收费的对话框了。
游戏apk下载地址:http://pan.baidu.com/s/1bo6rFdX
严重声明:本文的目的非常单纯仅仅是为了介绍逆向技术,绝没有不论什么商业目的,假设有人将此文技术用于商业目的带来的不论什么法律责任将由操作者本文承担,和本文内容作者没不论什么关系,也由衷的希望各位能够秉着技术学习的态度阅读此文,非常感谢!
四、总结
本文就简单的介绍了怎样去除游戏中的收费功能,顺利进入游戏玩耍。能够看到本文的篇幅非常短,事实上这个破解流程非常easy。适合0基础逆向爱好者入门练习功能。文章阅读完了,记得多多分享扩散!
很多其它内容:点击这里
关注微信公众号。最新技术干货实时推送
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border: none; max-width: 100%; max-height: 100%;" />
扫一扫加小编微信
加入时注明:“编码漂亮”否则不予通过。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border: none; max-width: 100%; max-height: 100%;" />
加入时注明:“编码漂亮”否则不予通过。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border: none; max-width: 100%; max-height: 100%;" />
Android逆向之旅---破解"穿靴子的猫"游戏的收费功能的更多相关文章
- Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)
Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...
- Android逆向之旅---SO(ELF)文件格式详解(转)
第一.前言 从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域.作为一名Android开发者,每个人都想去探索这个领域,因为一旦 ...
- Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正
Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正 http://blog.csdn.net/jiangwei0910410003/article/details/51 ...
- Android逆向之旅---基于对so中的section加密技术实现so加固
一.前言 好长时间没有更新文章了,主要还是工作上的事,连续加班一个月,没有时间研究了,只有周末有时间,来看一下,不过我还是延续之前的文章,继续我们的逆向之旅,今天我们要来看一下如何通过对so加密,在介 ...
- Android逆向之旅---SO(ELF)文件格式详解
第一.前言 从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域.作为一名Android开发者,每个人都想去探索这个领域,因为一旦 ...
- Android逆向之旅---静态方式分析破解视频编辑应用「Vue」水印问题
一.故事背景 现在很多人都喜欢玩文艺,特别是我身边的UI们,拍照一分钟修图半小时.就是为了能够在朋友圈显得逼格高,不过的确是挺好看的,修图的软件太多了就不多说了,而且一般都没有水印啥的.相比较短视频有 ...
- Android逆向之旅---Android中锁屏密码算法解析以及破解方案
一.前言 最近玩王者荣耀,下载了一个辅助样本,结果被锁机了,当然破解它很简单,这个后面会详细分析这个样本,但是因为这个样本引发出的欲望就是解析Android中锁屏密码算法,然后用一种高效的方式制作锁机 ...
- Android逆向之旅---静态分析技术来破解Apk
一.前言 从这篇文章开始我们开始我们的破解之路,之前的几篇文章中我们是如何讲解怎么加固我们的Apk,防止被别人破解,那么现在我们要开始破解我们的Apk,针对于之前的加密方式采用相对应的破解技术,And ...
- Android逆向之旅---Native层的Hook神器Cydia Substrate使用详解
一.前言 在之前已经介绍过了Android中一款hook神器Xposed,那个框架使用非常简单,方法也就那几个,其实最主要的是我们如何找到一个想要hook的应用的那个突破点.需要逆向分析app即可.不 ...
随机推荐
- WIN10系统如何取消右下角的通知菜单,通知图标
鼠标左键单击通知按钮,然后点击所有设置 在通知和操作页面,取消勾选所有的通知 建议选择在任务栏显示哪些图标,然后勾选显示所有图标
- Linux中Sed的用法
Linux中Sed的用法 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: ...
- pyqt、webkit和qt之间的关系
前言 最近在维护一个PYQT的项目,有很多不明白的地方,总结一下,共其他直接使用pyqt的人参考一下.PyQT是一个生成图形应用程序的工具包.是python语言和成功的Qt库的绑定.Qt库是这个世界上 ...
- JAVA设计模式——第 8 章 适配器模式【Adapter Pattern】(转)
好,请安静,后排聊天的同学别吵醒前排睡觉的同学了,大家要相互理解嘛.今天讲适配器模式,这个模式也很简单,你笔记本上的那个拖在外面的黑盒子就是个适配器,一般你在中国能用,在日本也能用,虽然两个国家的的电 ...
- IDEA引入外部jar包的方法
在做发短信的功能(阿里大于)的时候,我只是吧jar包拷贝到了项目的external library. 拷贝进来之后我用junit写了test方法,可以完美发送短信到手机,但是我这是个web项目,然后我 ...
- SQL Server从BAK文件还原新的数据库
同一个数据库多个副本 很多时候,比如为了方便测试,排查问题,我们常常会拿到问题系统的数据库备份来开发环境下debug,这个时候就会出现同一个数据库的多个副本. 还原法 还原到一个新建的空数据库,在选项 ...
- XMLHttpRequest HTTP请求的返回码为0 http status = 0
由于用户在http返回前关闭/取消,或者防火墙等原因,会造成http请求没有status信息.w3c有相应的说明:http://www.w3.org/TR/XMLHttpRequest/#the-st ...
- spring mvc简单的demo(注解版)
tomcat配置文件:web.xml <?xml version="1.0" encoding="UTF-8"? > <web-app ver ...
- 〖Linux〗iptables端口转发(11.11.136.80:5552 <==> 10.10.136.1:8055/11.11.136.1:8055)
环境: pc1: 10.10.72.1 (network: 10.10.72.0/22) pc2: 地址1: 10.10.136.1 (nework: 10.10.136.0/22) 地址2: 11. ...
- Android开发之使用Handler刷新UI控件
一.为什么必须使用Handler 线程安全问题 这个问题要理解的话很容易,如果没有这个约束,那么同时有两个线程对一个UI控件进行调整,那么控件自然就没法正常的工作,而为了解决这种二义性(就是一个东西同 ...