图/文  听鬼哥说故事

---------------------------------------------分割线--------------------------------------------

这篇文章也是前段时间的文章,最近这个系列的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修改,五,实例第二篇相关推荐

  1. 跟着鬼哥学so修改,一,准备篇

    图/文 听鬼哥说故事 闲话少说,so的修改,重要性大家都知道,这里从头编写so文件,分析so文件,修改so文件,打算做一个系列的教程,当然,主要是看时间允许. android的sdk配置以及ndk环境 ...

  2. 跟着鬼哥学so修改,三,答案篇

    几篇分析好的文章: http://www.pd521.com/thread-114-1-1.html     xxoo http://www.pd521.com/thread-113-1-1.html ...

  3. 跟着鬼哥学so修改,三,作业篇

    作业: 通过前面两篇文章的学习,请自行分析此应用,将当前用户类型修改为Gold Vip 用户. 有两种以上的方式可以修改的,有兴趣的同学请进行分析,写一下分析记录,可另起文章发布其过程与思路. 明天或 ...

  4. 跟着鬼哥学爬虫-10-python微信-5-加上了人工智能回复!

    跟着鬼哥学爬虫-10-python微信-5-加上了人工智能回复! 其实人工智能回复,现在网上有很多开源的机器学习,AI学习的框架,但是最重要的一点就是没有语料,也就是没有相互回答的数据内容. 所以这个 ...

  5. 跟着鬼哥学爬虫-5-更新妹子图库质量,提高微信群聊发图速度

    跟着鬼哥学爬虫-5-更新妹子图库质量,提高微信群聊发图速度 第三篇中的图库,群里大家都说质量稍微次一点,现在重新爬了个网站更新一下. 比上一篇的代码也优化了一点,对于自动保存的文件名,采用数字方式直接 ...

  6. 跟着鬼哥学爬虫-3-美女图片!!!

    这一节课,是群里很多娃在等待的课程. 通过前面两篇文章的学习,我们对BeautifulSoup4的简单使用有了了解. 了解了使用这个爬虫的核心是熟悉分析清楚html标签,一些css的简单知识,找准了标 ...

  7. 跟着鬼哥学so改动,二,进行篇

    图/文  听鬼哥说故事 继续上文的内容---------------------------------- 0x1:測试文件的编写 经过上一篇文章的基础学习,如今我们開始进行是用的部分. 既然我们能够 ...

  8. 跟着鬼哥学so改动,一,准备篇

    图/文 听鬼哥说故事 闲话少说,so的改动,重要性大家都知道,这里从头编写so文件,分析so文件,改动so文件,打算做一个系列的教程,当然,主要是看时间同意. android的sdk配置以及ndk环境 ...

  9. 跟着鬼哥学PyQtPart.2

    <span style="font-family: Arial, Helvetica, sans-serif;">0x1:</span><span s ...

  10. 跟着鬼哥学android java hook(三)

    按照上文的约定,我们继续第三篇文章,找一个游戏来测试此框架和插件的稳定性. 一个解谜逃脱类的游戏,挺好玩的,我还是未破解情况下玩通上一个版本了,新版本其实也出来两三个月了,过了那个新鲜劲头,就直接破解 ...

最新文章

  1. java 获取utc,如何在Java 8中获取UTC + 0日期?
  2. 高斯混合模型聚类实战(Gaussian Mixtures)
  3. 【Shell】使用记录
  4. JSONP简单入门介绍
  5. HTML5新增的一些特性
  6. 一个富翁试图与陌生人做一笔生意用python_实验报告1 - 图文 -
  7. ubuntu 查看日历,日期
  8. JavaScript 严格模式(use strict)
  9. SQL Server死锁
  10. collections模块之defaultdict
  11. 防震计算机主机,一种防震计算机主机的制作方法
  12. mac自带代码对比工具
  13. 投影幕布尺寸计算器_投影距离和屏幕尺寸计算器Ver1.02.xls
  14. lisp 车位块自动编号_湘源控规用使用手册.doc
  15. Java学习笔记: HashMap 和 HashSet
  16. 拼接播放地址_无极婚礼布置地址,好的婚礼服务多少钱_大伟庆典
  17. 循环闹钟c语言,闹钟设置四天一个循环,自定义周期循环提醒便签
  18. 待我君临天下,定许你一世繁华。
  19. 三国杀:智能电视迎来对垒时代
  20. 从量子力学到量子卫星:教你成为量子科学高手

热门文章

  1. 关于rocketmq的配置启动
  2. 面试题之——多线程详解
  3. Git 远程仓库 git remote
  4. sql中 replace函数
  5. [原创]微软笔试经验总结
  6. PHP has encountered an Access Violation at
  7. [原创]经典软件测试技术分类
  8. 深度学习 Fine-tune 技巧总结
  9. 求1+2+3+...+n(剑指 Offer 64)
  10. c++数据结构中 顺序队列的队首队尾_数据结构与算法(三)栈和队列