标签:
跟随鬼哥伦比亚科学so变化,四。第一章的例子
图纸/文化 听鬼哥说故事
---------------------------------------------切割线--------------------------------------------
这篇文章是前段时间的文章,近期这个系列的so分析刚好能够做为一个实例教程。所以就补充拿回来了。
前三篇没看的。请继续关注博客,看完前面三篇。
趁热打铁,加深对so的分析过程,于是就有了这篇文章的补充························
另,此文章须要对android反编译逆向有一定基础。简单了解so的作用。有不论什么疑惑。可去群里和论坛或自行google搜索解决。
文章受www.pd521.com 站长邀请。首发在其论坛,大家能够过去关注,非常多基础资料。方便新手学习。
请大家自己动手去练习!
!!
!!
!。!
。。。!。。!。!!
!。!
!!
!
!!
!。!。!
。
---------------------------------------------切割线--------------------------------------------
今天我们来分析的是小黄人快跑,小黄人的形象从电影上面一直都蛮好的。如今都拍到了第二部了,所以我们找到这个游戏来进行分析。
第一层次分析:
拿到游戏,首先我们得先安装看看有什么地方是值得破解的。
通过观察。我们发现游戏中基本的消费方式在香蕉和金币上面,既然这样,那么我们就先看看支付上面能否够直接破解内购。购买截图例如以下图所看到的:
和游戏支付的方式,那么就查询相关资料,比如曾经我的教程中对onPayFailed方法的改动,对onBillingFinish方法的改动,在这里可能是对移动支付进行了升级,没法直接那样操作。既然这样。那么我们就查看下Logcat,看看有无有价值的信息。
通过多次測试。我们发如今点击进入游戏支付的时候有这行输出,那么好,我们就跟进观察这行代码,这行代码后面肯定是启动支付流程的相关代码。
对于smali代码不熟悉的同学。那么直接使用jd-gui打开jar文件查看吧,例如以下:
搜索找到我们发现的特征字符,例如以下:
搜索找到我们发现的特征字符,例如以下:
晓得了so的名称。那么我们就挂起ida。java能够直接调用使用的肯定都是export导出函数。所以我们在export中搜索nativeBillingDone:
然后看到这种方法:
好,大致看懂第一段代码后。我们往下翻翻:
通过图片中的文字说明。我们也简单可以明确,我们须要做的,就是先測试一下。将这个addcash(int)方法的传入參数设置为8会怎么样,是不是会添加金币。所以我们回到最初分析的时候,看这里:
通过图片中的文字说明。我们也简单可以明确,我们须要做的。就是先測试一下,将这个addcash(int)方法的传入參数设置为8会怎么样,是不是会添加金币。所以我们回到最初分析的时候,看这里:
进行完第一层次分析后。我们知道已经分析对了位置。So文件里的算法也找对了,那么。我们初始化多添加点金币多好,于是,我们继续開始分析
关键点就在addcash方法中的这一行对R1复制的代码上面,我们打开16进制看一眼:
由于那个本身的马上数,通过观察发现原本的指令刚好反过来为E3 04 19 C8 ,那么对比0x49C8。我直接改动为如上图所看到的:
发现直接改动成功了,好了,这样就更给力了。我们直接使用010Editor或者UE。操作so文件
。
链接:http://pan.baidu.com/s/1eQILJkI password:7kyr
事实上此游戏还有非常多方式去破解的。这里仅仅是介绍一两种而已,大家能够自行补充~
转载请注明出处~~~~~~~~~~
标签:
原文地址:http://www.cnblogs.com/mengfanrong/p/4573561.html