[转]Android java hook(一)

参考: 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包导入
[转]Android java hook(一)_第1张图片
然后开始配置AndroidManifest.xml文件
[转]Android java hook(一)_第2张图片
1.我们使用Application对象,程序最优先启动的
2.这里设置主类,跟正常的安卓工程不同,这里相当于开发一个插件
3.这个权限,代表着cydia能够识别他为自己的插件,可以启动它

主类操作:
这里initialize()是初始化相关东西,这个相当于main函数入口
[转]Android java hook(一)_第3张图片
然后后面的方法,都写上注释了,这里也就不再多叙述。
[转]Android java hook(一)_第4张图片
这个工程的目标是,hook手机上面的文字颜色,即短信,联系人之类的文字颜色,上面都操作完毕后,我们运行下程序,可以看到控制台:

这里我们没有Main和launch的入口,所以这个程序是没有图标显示到手机桌面的,因为我们已经指定了他是cydia的一个插件,所以这个时候,我们重启手机即可启动此插件。
[转]Android java hook(一)_第5张图片
[转]Android java hook(一)_第6张图片
通过上面两张图的对比,发现我们已经正常写好了一个测试插件。
这个不是最终目的,只是按照官网的介绍测试成功了一个demo而已,那么接下来就是我们继续扩展了。

测试demo通过,说明这个框架还是可用的,所以我们重要的是下一步的操作了。

我们的主要问题是,修改游戏中的参数数据,如与jni相关的签名数据传输,内购的通信修改,这个是比较重要的。

所以我们先从一个小demo开始,这也是我们下次文章的重点。

不熟悉此框架的同学,多去官网看看介绍,不要说是英文看不懂,就那么一点单词而已,查查也就行了,况且现在浏览器都有翻译。不过还是推荐看英文,原因你懂的。。。
相关测试demo都放到百度网盘,有兴趣的可以试试。
毕竟是框架,用xposed有时候也有风险,所以这个也是,不过风险几率不大的。

相关附件:
链接: http://pan.baidu.com/s/1gdKhj0J 密码:zmib

你可能感兴趣的:(android)