跟着鬼哥学Android java hook(一)
本帖最后由 淡然出尘 于 2015-2-3 18:42 编辑参考:http://www.cydiasubstrate.com
0x0:前言
一直以来想做一下安卓java hook方面的东西,因为一些游戏的测试,如果能做好java hook的话,那么本机测试的话将会非常方便,更主要的是在一些有签名或者md5防护的游戏中,我们可以确定好位置,然后hook相关方法和修改参数,达到测试的效果,能确保找准位置,那么剩下的就寻找游戏的验证即可。
那么,我们就找了一个cydiasubstrate框架开始测试,其实,用xposed也一样,看使用习惯了,这里我们是刚开始学习,那么就先使用这个开始了。
下面的代码相关的,是使用官网介绍的相关例子。http://www.cydiasubstrate.com/id/20cf4700-6379-4a14-9bc2-853fde8cc9d1/
建议读者去读官网介绍,英文的,不多,一般都能理解掉。实在不想看官网的,那就继续本篇文章吧。
首先是在手机上安装cydia框架:https://cache.saurik.com/apks/com.saurik.substrate_0.9.4010.apk
打开后,简单的英文,按照说明点一下即可。
0x1:建立工程
建立好工程以后,将所需jar包导入
然后开始配置AndroidManifest.xml文件
1.我们使用Application对象,程序最优先启动的2.这里设置主类,跟正常的安卓工程不同,这里相当于开发一个插件3.这个权限,代表着cydia能够识别他为自己的插件,可以启动它
主类操作:这里initialize()是初始化相关东西,这个相当于main函数入口
然后后面的方法,都写上注释了,这里也就不再多叙述。
这个工程的目标是,hook手机上面的文字颜色,即短信,联系人之类的文字颜色,上面都操作完毕后,我们运行下程序,可以看到控制台:
这里我们没有Main和launch的入口,所以这个程序是没有图标显示到手机桌面的,因为我们已经指定了他是cydia的一个插件,所以这个时候,我们重启手机即可启动此插件。
通过上面两张图的对比,发现我们已经正常写好了一个测试插件。这个不是最终目的,只是按照官网的介绍测试成功了一个demo而已,那么接下来就是我们继续扩展了。
测试demo通过,说明这个框架还是可用的,所以我们重要的是下一步的操作了。
我们的主要问题是,修改游戏中的参数数据,如与jni相关的签名数据传输,内购的通信修改,这个是比较重要的。
所以我们先从一个小demo开始,这也是我们下次文章的重点。
不熟悉此框架的同学,多去官网看看介绍,不要说是英文看不懂,就那么一点单词而已,查查也就行了,况且现在浏览器都有翻译。不过还是推荐看英文,原因你懂的。。。相关测试demo都放到百度网盘,有兴趣的可以试试。毕竟是框架,用xposed有时候也有风险,所以这个也是,不过风险几率不大的。
相关附件:链接:http://pan.baidu.com/s/1gdKhj0J 密码:zmib
wsliuyunming 发表于 2014-9-13 23:47
当程序代码混淆了,还能通过类名找到那个类吗?测试过吗?
可以看下hook的两个小插曲。
其中那个触摸精灵的,都是混淆的算法,类名,可以正常使用。
不过相对来说,hook也不一定是万能的,也有Hook不到的情况,得具体情况,想办法来解决。 感谢分享,想学习下.Net hook 不知道可以不 好东西 前排收藏支持了 。。基础没学好真的是一点都看不懂 是研究手机软件的吧? 鬼大神又开始腾好货了,快搬凳子来学习! 哇啊哇哇,看上去好像很腻害 先支持了 稍后学习 支持你,感谢楼主分享教程 大神必须膜拜