跟着鬼哥学so修改,五,实例第二篇
图/文 听鬼哥说故事
---------------------------------------------分割线--------------------------------------------
这篇文章也是前段时间的文章,最近这个系列的so分析刚好可以做为一个实例教程,所以就补充拿回来了。
前四篇没看的,请继续关注博客,看完前面四篇。
趁热打铁,加深对so的分析过程,于是就有了这篇文章的补充························
另,此文章需要对android反编译逆向有一定基础,简单了解so的作用,有任何疑惑,可去群里和论坛或自行google搜索解决。
文章受www.pd521.com 站长邀请,首发在其论坛,大家可以过去关注,很多基础资料,方便新手学习
请大家自己动手去练习!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
---------------------------------------------分割线--------------------------------------------
以TTX连萌来多层次分析游戏破解
这里只是摘取so部分过来给大家看,原文详细链接:
http://blog.csdn.net/guiguzi1110/article/details/40586339
0x1:直接修改金币
通过OnBillingFinish()方法
我们进入到这个PopStar查看:
当然,这个类里面还有很多方法,很多支持破解的方法,如:
定义购买金币数量的,即购买成功后增加的数量。等等。。。
长话短说,咱们看到PopStar.nativeAddCoin方法后,确定是一个native方法,那么我们找到上文
System.loadLibrary("xinxin");
用IDA加载libxinxin.so,然后定位到nativeAddCoin方法.
现在大家多数用的大佬的那个IDA,带F5的,那么我们直接f5
查看到这里的方法,useGameCoin方法。打开这个方法查看:
这里有我加的注释,很清晰的,看不明白的,F5一下也就知道了。
因为getIntegerForKey,返回值为R0,然后往下第二行代码,R0=R0+R6,所以我们关键是在这里修改R0,即金币数量
Hex查看一下二进制,这里为Thumb指令,那么我们可以操作局限性也很高了。
所以,这里提供一个思路,大家可以寻找更加简便的方法。
即,BL getIntegerForKey,我们直接复制R0一个数值,然后在下面Adds R0,R0,R6这里,直接对R0逻辑左移一下,即LSL一下,将其数值变大。
因为第一个BL是4个字节,我们直接修改 00 00 09 20 ,即Movs R0,R0 代表没有任何操作,09 20是将数字9赋值给R0
然后ADDs那一行,有两个字节,直接改为 00 04,即 LSLS R0,R0,#0x10
这样,我们即完成了对金币数量的赋值,如下图:
然后,我们在16进制下修改,选用010Editor或UE,ctrl + g,进行地址跳转,寻找到我们在IDA修改的地址,按照上文修改,保存,替换,回编译。
注释:: int a=9 ; a=a<<0x10; 即金币锁定为589824
这里需要说明的是,这个方法何时被调用,即才能激活我们对金币的赋值呢?
直接在IDA里面对这个方法按下x键,查看调用,有5处。那么应该很容易被激活。
红色标注的,是使用金币的道具,按照我们看到方法被调用的地方,这里被调用了,然后金币数量即我们定义的。
0x2:修改短信
这里不多说了,根据系统发送短信函数进行查找修改,替换短信内容,替换短信发送人即可。
我直接使用hook的方式替换的,比较省事了。。
相关代码不难,看完我前面几篇hook java的文章的同学,应该很容易能够写出来代码,这里不再多写,有兴趣,自己动手去。
文档和相关附件:
http://pan.baidu.com/s/1kTLwwDL
跟着鬼哥学so修改,五,实例第二篇相关推荐
- 跟着鬼哥学so修改,一,准备篇
图/文 听鬼哥说故事 闲话少说,so的修改,重要性大家都知道,这里从头编写so文件,分析so文件,修改so文件,打算做一个系列的教程,当然,主要是看时间允许. android的sdk配置以及ndk环境 ...
- 跟着鬼哥学so修改,三,答案篇
几篇分析好的文章: http://www.pd521.com/thread-114-1-1.html xxoo http://www.pd521.com/thread-113-1-1.html ...
- 跟着鬼哥学so修改,三,作业篇
作业: 通过前面两篇文章的学习,请自行分析此应用,将当前用户类型修改为Gold Vip 用户. 有两种以上的方式可以修改的,有兴趣的同学请进行分析,写一下分析记录,可另起文章发布其过程与思路. 明天或 ...
- 跟着鬼哥学爬虫-10-python微信-5-加上了人工智能回复!
跟着鬼哥学爬虫-10-python微信-5-加上了人工智能回复! 其实人工智能回复,现在网上有很多开源的机器学习,AI学习的框架,但是最重要的一点就是没有语料,也就是没有相互回答的数据内容. 所以这个 ...
- 跟着鬼哥学爬虫-5-更新妹子图库质量,提高微信群聊发图速度
跟着鬼哥学爬虫-5-更新妹子图库质量,提高微信群聊发图速度 第三篇中的图库,群里大家都说质量稍微次一点,现在重新爬了个网站更新一下. 比上一篇的代码也优化了一点,对于自动保存的文件名,采用数字方式直接 ...
- 跟着鬼哥学爬虫-3-美女图片!!!
这一节课,是群里很多娃在等待的课程. 通过前面两篇文章的学习,我们对BeautifulSoup4的简单使用有了了解. 了解了使用这个爬虫的核心是熟悉分析清楚html标签,一些css的简单知识,找准了标 ...
- 跟着鬼哥学so改动,二,进行篇
图/文 听鬼哥说故事 继续上文的内容---------------------------------- 0x1:測试文件的编写 经过上一篇文章的基础学习,如今我们開始进行是用的部分. 既然我们能够 ...
- 跟着鬼哥学so改动,一,准备篇
图/文 听鬼哥说故事 闲话少说,so的改动,重要性大家都知道,这里从头编写so文件,分析so文件,改动so文件,打算做一个系列的教程,当然,主要是看时间同意. android的sdk配置以及ndk环境 ...
- 跟着鬼哥学PyQtPart.2
<span style="font-family: Arial, Helvetica, sans-serif;">0x1:</span><span s ...
- 跟着鬼哥学android java hook(三)
按照上文的约定,我们继续第三篇文章,找一个游戏来测试此框架和插件的稳定性. 一个解谜逃脱类的游戏,挺好玩的,我还是未破解情况下玩通上一个版本了,新版本其实也出来两三个月了,过了那个新鲜劲头,就直接破解 ...
最新文章
- java 获取utc,如何在Java 8中获取UTC + 0日期?
- 高斯混合模型聚类实战(Gaussian Mixtures)
- 【Shell】使用记录
- JSONP简单入门介绍
- HTML5新增的一些特性
- 一个富翁试图与陌生人做一笔生意用python_实验报告1 - 图文 -
- ubuntu 查看日历,日期
- JavaScript 严格模式(use strict)
- SQL Server死锁
- collections模块之defaultdict
- 防震计算机主机,一种防震计算机主机的制作方法
- mac自带代码对比工具
- 投影幕布尺寸计算器_投影距离和屏幕尺寸计算器Ver1.02.xls
- lisp 车位块自动编号_湘源控规用使用手册.doc
- Java学习笔记: HashMap 和 HashSet
- 拼接播放地址_无极婚礼布置地址,好的婚礼服务多少钱_大伟庆典
- 循环闹钟c语言,闹钟设置四天一个循环,自定义周期循环提醒便签
- 待我君临天下,定许你一世繁华。
- 三国杀:智能电视迎来对垒时代
- 从量子力学到量子卫星:教你成为量子科学高手