吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16554|回复: 33
收起左侧

[Android 原创] 跟着鬼哥学android java hook(三)

  [复制链接]
听鬼哥说故事 发表于 2014-9-1 10:09
本帖最后由 淡然出尘 于 2015-2-3 18:39 编辑

    按照上文的约定,我们继续第三篇文章,找一个游戏来测试此框架和插件的稳定性。

      游戏以及测试Hook代码都在附件,这里不再重复叙述,希望读者可以自己对附件中的游戏进行测试分析,掌握hook的简单使用,才是本文最主要的目的。      

    一个解谜逃脱类的游戏,挺好玩的,我还是未破解情况下玩通上一个版本了,新版本其实也出来两三个月了,过了那个新鲜劲头,就直接破解得了。
游戏正常的破解方面,读者自己去搞吧,一般是看完我以前发过的所有文章,这个游戏是很简单搞定的,在这里,我们不用暴力破解的方式来搞,假设游戏里面加入了很多防护,如文件md5验证,dex修改,签名验证,防回编译之类的,那么只能反编译而回编译不了或者回编译的包不能运行,所以我们需要在不修改游戏原包情况下来操作游戏的破解了。
   
    所以我们先静态分析一下游戏,然后找到关键类:
过程这里不再重复,读者自己去分析一下,hook是基于对方法的操作,如果都找不对关键的call,那么一切都是无用的。

图片1.png



通过这个类,已经很明显的定义了一个MoneyModel,用于所有跟Money相关资源的定义。
这里我们对此getMoney()方法来进行hook
上面截图大家可以看到,我是先采用的暴力破解,直接修改金币数量为99999,如果这个软件有防护,那我们就开始编写插件。
软件使用的基本框架,参照前两篇文章即可,我们只需要用第二篇文章提到的工程,简单修改一些代码即可使用。
1.我们需要hook的类
2.我们需要hook的方法
3.hook方法后的操作
按照我们归纳的这三点:
首先是修改这里,将需要hook的类换成游戏中这个类:


MS.hookClassLoad("com.gipnetix.escapeaction.scenes.money.MoneyModel", new MS.ClassLoadHook()

然后就是hook的方法:(无参,后面用null)
log=arg0.getMethod("getMoney", null);



接着就是hook后这个方法的操作:


//调用原getMoney方法,将原方法的返回值放到aa中

                                                float aa=(Float) old.invoke(arg0, arg1);

                                                //修改aa为777777,即原方法返回值已经修改掉了
                                                aa=777777;

                                                System.out.println("金币已经修改为777777");

                                                //返回aa
                                                return aa;




Float类型的方法,返回值必然也是float,所以上面我们已经修改数据返回为77777,然后就是安装此插件,重启手机激活插件。
运行游戏,查看log日志:

图片3.png



图片2.png


好了,通过上面两个图,证明我们的修改是有效的。

总结一下:

本文主要进行修改的是无参数方法的hook,修改方法的返回值,然后达到破解的效果,不过一般方法来说,还是有参数的为多,那么下一篇,我们就开始分析一个有参数的方法的hook代码的编写。
编码基础不好的同学,请注意自主学习,网上很多资料的,多翻翻多看看,有付出才会有进步。

相关代码和文档附件:

链接:http://pan.baidu.com/s/1kTkhpl1 密码:ozbm


免费评分

参与人数 6热心值 +7 收起 理由
dujx + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
findkill + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
feiji5218 + 1 这么好作品没人来评分,期待鬼哥能出关于腾.
wanttobeno + 2 谢谢@Thanks!
FC丶小组 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
lwj一辈子 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ky9999 发表于 2015-1-8 15:03
楼主 请问你那段MoneyModel的java代码是怎么找到的的 反编译得不到java代码啊
feiji5218 发表于 2014-9-2 13:15
现在腾讯手游真的很火,期待鬼哥的关于腾讯手游的教程!呵呵,我先小小自私下,玩了半年的《全民飞机大战》
lwj一辈子 发表于 2014-9-1 10:18
lovehmy123 发表于 2014-9-1 10:21
学习了,已收藏,留着慢慢研究
Tong 发表于 2014-9-1 10:28
多谢分享
uhyjjgt 发表于 2014-9-1 10:34
谢谢分享 ‘





鬼圈 发表于 2014-9-1 10:53
为毛你的名字这么叼。。。
天天404 发表于 2014-9-1 11:00
我是前排,火钳刘明
无人说爱我 发表于 2014-9-1 11:01
会火哦,前排。
92pojie 发表于 2014-9-1 11:03
火钳刘明,哈哈
jiang196771 发表于 2014-9-1 11:09
大火前,留名啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表