按照鬼哥学so变化,四,第一章的例子
跟随鬼哥伦比亚科学so变化,四。第一章的例子
图纸/文化 听鬼哥说故事
---------------------------------------------切割线--------------------------------------------
这篇文章是前段时间的文章,近期这个系列的so分析刚好能够做为一个实例教程。所以就补充拿回来了。
前三篇没看的。请继续关注博客,看完前面三篇。
趁热打铁,加深对so的分析过程,于是就有了这篇文章的补充························
另,此文章须要对android反编译逆向有一定基础。简单了解so的作用。有不论什么疑惑。可去群里和论坛或自行google搜索解决。
文章受www.pd521.com 站长邀请。首发在其论坛,大家能够过去关注,非常多基础资料。方便新手学习。
请大家自己动手去练习!
!!
!!
!。!
。。。!。。!。!!
!。!
!!
!
!!
!。!。!
。
---------------------------------------------切割线--------------------------------------------
今天我们来分析的是小黄人快跑,小黄人的形象从电影上面一直都蛮好的。如今都拍到了第二部了,所以我们找到这个游戏来进行分析。
第一层次分析:
拿到游戏,首先我们得先安装看看有什么地方是值得破解的。
通过观察。我们发现游戏中基本的消费方式在香蕉和金币上面,既然这样,那么我们就先看看支付上面能否够直接破解内购。购买截图例如以下图所看到的:
和游戏支付的方式,那么就查询相关资料,比如曾经我的教程中对onPayFailed方法的改动,对onBillingFinish方法的改动,在这里可能是对移动支付进行了升级,没法直接那样操作。既然这样。那么我们就查看下Logcat,看看有无有价值的信息。
通过多次測试。我们发如今点击进入游戏支付的时候有这行输出,那么好,我们就跟进观察这行代码,这行代码后面肯定是启动支付流程的相关代码。
对于smali代码不熟悉的同学。那么直接使用jd-gui打开jar文件查看吧,例如以下:
搜索找到我们发现的特征字符,例如以下:
搜索找到我们发现的特征字符,例如以下:
晓得了so的名称。那么我们就挂起ida。java能够直接调用使用的肯定都是export导出函数。所以我们在export中搜索nativeBillingDone:
然后看到这种方法:
好,大致看懂第一段代码后。我们往下翻翻:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VpZ3V6aTExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
通过图片中的文字说明。我们也简单可以明确,我们须要做的,就是先測试一下。将这个addcash(int)方法的传入參数设置为8会怎么样,是不是会添加金币。所以我们回到最初分析的时候,看这里:
通过图片中的文字说明。我们也简单可以明确,我们须要做的。就是先測试一下,将这个addcash(int)方法的传入參数设置为8会怎么样,是不是会添加金币。所以我们回到最初分析的时候,看这里:
第二层次分析:
进行完第一层次分析后。我们知道已经分析对了位置。So文件里的算法也找对了,那么。我们初始化多添加点金币多好,于是,我们继续開始分析
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VpZ3V6aTExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
关键点就在addcash方法中的这一行对R1复制的代码上面,我们打开16进制看一眼:
由于那个本身的马上数,通过观察发现原本的指令刚好反过来为E3 04 19 C8 ,那么对比0x49C8。我直接改动为如上图所看到的:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VpZ3V6aTExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
发现直接改动成功了,好了,这样就更给力了。我们直接使用010Editor或者UE。操作so文件
命令跳转地址,直接相应改动这四个字节码就可以。
。
排版看的不舒服的。直接看文档就可以。相关附件地址:
链接:http://pan.baidu.com/s/1eQILJkI password:7kyr
事实上此游戏还有非常多方式去破解的。这里仅仅是介绍一两种而已,大家能够自行补充~
转载请注明出处~~~~~~~~~~
按照鬼哥学so变化,四,第一章的例子的更多相关文章
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- 跟着鬼哥学so改动,二,进行篇
图/文 听鬼哥说故事 继续上文的内容---------------------------------- 0x1:測试文件的编写 经过上一篇文章的基础学习,如今我们開始进行是用的部分. 既然我们能够 ...
- 跟着鬼哥学so改动,一,准备篇
图/文 听鬼哥说故事 闲话少说,so的改动,重要性大家都知道,这里从头编写so文件,分析so文件,改动so文件,打算做一个系列的教程,当然,主要是看时间同意. android的sdk配置以及ndk环境 ...
- 跟着鸟哥学Linux系列笔记2-第10章VIM学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...
- 跟着鬼哥学so改动,三,作业篇
作业: 通过前面两篇文章的学习.请自行分析此应用,将当前用户类型改动为Gold Vip 用户. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VpZ3V ...
- 快学Scala习题解答—第一章 基础
1 简介 近期对Scala比较感兴趣,买了本<快学Scala>,感觉不错.比<Programming Scala:Tackle Multi-Core Complexity on th ...
- 路飞学城-Python开发-第一章
# 基础需求: # 让用户输入用户名密码 # 认证成功后显示欢迎信息 # 输错三次后退出程序 username = 'pandaboy' password = ' def Login(username ...
- PRML第一章读书小结
PRML第一章读书小结 第一章用例子出发,较为简单的引入了概率论.模型.决策.损失.信息论的问题,作为机器学习从业者,读PRML除了巩固已有基础,还受到了很多新的启发,下面将我收到的启发总结如 ...
- [老老实实学WCF] 第四篇 初探通信--ChannelFactory
老老实实学WCF 第四篇 初探通信--ChannelFactory 通过前几篇的学习,我们简单了解了WCF的服务端-客户端模型,可以建立一个简单的WCF通信程序,并且可以把我们的服务寄宿在IIS中了. ...
随机推荐
- whu oj 1551 Pairs (莫队算法)
problem_id=1551">题目链接 题目大意: 给出的询问,求出这个区间的里 差小于等于 2 的数字的对数. 思路分析: 莫队算法. 然后分析一下. 假设添加了一个数字.那么就 ...
- 使用ExpandableListView时间轴效果达到
不废话,首先在地图上,查看结果 这是用ExpandableListView来实现时间轴效果,原理比較简单,以月份为第一级,以天为第二级来实现的. package com.hj.main; import ...
- MP4文件格式具体解释——结构概述
MP4文件格式具体解释(ISO-14496-12/14) Author:Pirate Leo Email:codeevoship@gmail.com 一.基本概念 1. 文件,由很多Box和FullB ...
- 《python源代码分析》笔记 pythonVM一般表达式
本文senlie原版的.转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.字节码指令 LOAD_CONST:从consts表中读取序号为i的元素并压入到执行时栈中 ...
- HTML5 Introduction
1. HTML5 History HTML4.01 –1999.12 HTML5 – 2014.10– Done (8 years) In2006, WHATWG&W3C, decide to ...
- Java串口通信详细解释
前言 说到开源.恐怕非常少有人不挑大指称赞. 学生通过开源码学到了知识,程序猿通过开源类库获得了别人的成功经验及可以按时完毕手头的project,商家通过开源软件赚到了钱……,总之是皆大欢喜. 然而开 ...
- 《得知opencv》注意事项——矩阵和图像处理——cvOr,cvOrS,cvrReduce,cvRepeat,cvScale,cvSet and cvSetZero
矩阵和图像的操作 (1)cvOr函数 其结构 void cvOr(//两个矩阵相应元素做或执行 const CvArr* src1,//矩阵1 const CvArr* src2,//矩阵2 CvAr ...
- crawler_JVM_DNS_在爬虫中的应用
DNS解析:即由域名 经过dns解析,跳转到真正服务器的地址,这个重复解析的耗时占请求很大比例. 在设计爬虫时比较细粒度的控制下,需要考虑dns解析. jdk从1.5往后对dns缓存有默认设置, 详见 ...
- oracle_查询Oracle正在执行和执行过的SQL语句
---正在执行的select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where a.s ...
- XCL-Charts圈图
我不知道是不是叫图,无论如何,所以叫它. 图形是今天我Circliful这个jQuery 插件上看到的. 认为非常好看. 就想把它实现出来,由于之前画过环形图.且我如今的图表基类基本已成型,所以非常快 ...