意犹未尽而来的第一篇Android 逆向

游戏:咕噜王国大冒险

平台:android

目标:

1. 去除乱七八糟提示(本篇目标)

2. 去除google弹窗

3. 破解“all stages”

破文开始:

  1. 使用APKIDE反编译;搜索字符串“Problem setting up in-app”,看下图

于是来到下图

分析函数要注意:返回值;这里是V,即void;所以向下关注就应该能达到我们的目的,没必要向上关注;这个函数的功能: 拼接目标字符串,然后作为参数传递给待关注函数;

跟踪函数来到下图:

这个函数功能:使用java中的反射调用;即,这个函数使用java的反射机制,调用了 GameApplication 中的 sendToastMsg 函数;继续跟踪来到下图:

这个函数功能:使用java 中的 handle 发送消息,本质就是在传递数据;注意圈出的地方,handle 消息一般都在实现 handle 的那个类中的 handleMessage 中处理,通常 switch 分支 表达式 就是 Message 中的 what 字段;这图中已经圈出了handle sendMessage 的目标是 v0对象,即,GoloRunnerStart 类中的 字段 myHandler; 所以继续跟踪来到下图:

我们需要找到myHandler变量的值到底是谁,就要关注iput-object语句,看是什么值被赋予了这个变量;这张图,的确符合关注的条件,但是,稍微分析,知道这里是<init>V,是构造函数,初始化变量的地方,再看myHandler被赋予v1,而v1=0x0;所以这里不值得关注,继续寻找来到下图:

这里就是值得关注的地方,看到myHandler被赋予了一个有意义的值;这个值是一个实现了handler的类,这个类就是sendMessage的目标;所以跟踪来到下图:

看到handleMessage了吧,还记得前面sendMessage的时候那个what字段被赋予的值是多少吗?知道的话,那就看下图吧,不记得了的话,回头看看再回来;

这里结合what的值,可以知道,前面sendMessage发送过来的消息,使程序执行了::sswitch_c分支;看下图:

还记得sendMessage发送过来的除了what值,还有 什么吗? 还有那个我们第一步搜索的那个字符串经过和另外的字符串拼接之后的字符串,即我们目标图片上显示的那个完整的讨厌的字符串,这个分支就是得到这个字符串,然后 调用包装好的用来显示toast的函数showToast把那个讨厌的提示给我们显示出来;到这里就可以完美的修改代码了,如何修改看下图:

如果就这样结束的话,有人可能会问为什么不继续跟进那个showToast呢? 其实这个showToast函数应该跟进去看看,里面根据toast对象是否存在,选择toast的两中使用方法中的一种(一种是使用Toast对象 ,令一种是 使用toast类的makeTest静态方法);由于这个包装函数showToast函数,可能会被其他地方使用来显示我们不讨厌的提示,所以我不建议在这个包装函数里面改代码;最后给出那个包装函数的截图:

时间: 2024-10-10 02:55:11

意犹未尽而来的第一篇Android 逆向的相关文章

淘宝(阿里巴巴)手机客户端开发日记第一篇 android 主框架搭建(三)

activity_main.xml 结构如下:<?xml version="1.0" encoding="utf-8"?> <!-- 采用线性布局,垂直平铺 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:l

android逆向入门及工具下载

本文所用到的工具下载: 链接:http://pan.baidu.com/s/1i3uw4NN 密码:8hz5 最近在研究如何逆向android的app,于是就有了这篇android逆向入门的总结回馈互联网. 由于Android的.apk文件实际上就是一个zip文件,修改文件后缀后直接可以打开,效果如下图所示: 里面包含了的文件有: META-INF:这个文件夹是用于保存签名文件,确保包的完整性的 res:apk所要用的资源文件,都是原封不动地保存,我们可以直接提取出来,做汉化时就可以直接阅读st

Android逆向之旅---动态方式破解apk前奏篇(Eclipse动态调试smail源码)

一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用apktool来反编译apk,得到smail源码,然后分析smail代码,采用代码注入技术来跟踪代码,然后找到关键方法进行修改,进而破解,同时还可以使用一些开源的hook框架,比如:Xposed和Cydia Substrate,来进行关键方法的hook.所以这里我们可以看到我们破解的第一步是使用ap

Android基础学习第一篇—Project目录结构

写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对的地方,希望大家给与指正. 2. 由于类似于读书笔记,可能格式神马的会比较随(hen)意(chou),大家看着受不了,可以使劲吐槽. *************************************我只是分割线***************************************

android调用第三方库——第一篇 (转载)

转自:http://blog.csdn.net/jiuyueguang/article/details/9447245 版权声明:本文为博主原创文章,未经博主允许不得转载. 0:前言: 这两天一直在研究用android的jni调用第三方库,上网搜方法,但是都是泛泛而谈,没有demo,经过我几番折磨,写了n多的 helloword工程,总是不成功,工程名字也就由helloowrd转到shithelloword再转到fuckhelloword再转到 bitchhelloword再转到ganhello

(转).net程序员转战android第一篇---环境部署

对于.net开发人员去写java,可谓说是见山是山, 因为太多的相同; 最近段时间因工作因素,将项目中部分功能需要移植到android平台上,经过半个月的煎熬,终于搞完了. 文章中将直观记录我做项目中对android开发的学习和大家一起分享. 好了,废话不多说.进入主题; 准备事项 先从环境搭建开始,博主使用的是 系统:windows server 2003 准备文件:JRE.JDK6以上 | eclipse 3.6.2版本 | ADT-21| Android SDK   当以上文件都准备好了,

宇哥带你飞之Android多线程与异步任务--第一篇

本人工作已经一年多了,具体点说已经一年多3个月了,实习的早,过早的受到了社会的蹂躏.今年6月多份毕业了,然后就到了一个比较大的公司,具体名字就不说了,就是妹子超级超级多....在学校学的是游戏,cx之类的,但是鬼使神差的毕业后跟着同学就干上了应用,多亏了我的第一个老板--李金波,超级感谢~ 好了,废话不多说了,接下来就开启Android多线程与异步任务的学习吧,由于内容有点多,分几篇博客来和大家扯淡~ 学习Android当然就避免不了学习java,java中也有多线程还有线程之间的同步问题等等~

Android开源项目第一篇——个性化控件(View)篇

本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar及其他如Dialog.Toast.EditText.TableView.Activity Animation等等. Android开源项目系列汇总已完成,包括: Android开源项目第一篇——个性化控件(View)篇 Andr

Android百度地图开发-第一篇:申请、搭建百度地图

一.前言 这是第一篇关于Android使用百度地图的学习记录,主要记录: 1.在百度地图开发者平台上申请API Key. 2.在自己的应用中加入百度地图的Android版SDK. 3.在自己的应用中显示一个地图. 二.在百度地图开发者平台上申请API Key 百度地图开发者平台地址:http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5.点击界面的"申请密钥",进入界面之后,点击"创建应用"按钮. 将应用