听鬼哥说故事 发表于 2014-12-24 10:08:54

跟着鬼哥学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的文章的同学,应该很容易能够写出来代码,这里不再多写,有兴趣,自己动手去。

文档和相关附件:




**** Hidden Message *****














wangzh 发表于 2014-12-24 10:18:42

鬼哥,好像这个就是你之前博客的那篇文章?

beijingshi1 发表于 2014-12-24 10:47:47

顶顶吧。。。

1171610056 发表于 2014-12-24 13:22:19

继续,还要教程,嘻嘻哈哈

119552994 发表于 2014-12-24 14:21:41

鬼哥的文章要多學習 哈哈

hzw007 发表于 2014-12-24 18:09:49

鬼哥威武,多谢分享,加油:handshake

vVv一 发表于 2014-12-25 10:25:46


鬼哥的文章要多学习!!!

lk5261 发表于 2014-12-25 18:36:28

这个要支持:lol

JackIO 发表于 2014-12-26 22:15:11

鬼哥强大,顶一个。

深水易寒 发表于 2014-12-27 11:31:21

谢谢LZ的资源下载留存
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 跟着鬼哥学so修改,五,实例第二篇