参考:http://www.cydiasubstrate.com
在插件化编程中中,hook一直是个非常关键的环节,如果在合适的时机,找到对应的hook点,可以通过欺骗系统的方式,来进行瞒天过海,干自己想干的事,下篇会详细介绍360的开源插件DroidPlugin中hook的方式,如果系统中某些东西能被hook掉,是一个很危险的事情,如在一些有签名或者md5防护的游戏中,我们可以确定好位置,然后hook相关方法和修改参数,达到测试的效果,能确保找准位置,那么剩下的就寻找游戏的验证即可。这是用于在破解方面。另外大家最熟悉的就是制作病毒,获取系统短信电话等重要信息,发向远程邮箱,进行。。。
那么,我们就找了一个cydiasubstrate框架开始测试,下面的代码相关的,是使用官网介绍的相关例子。
http://www.cydiasubstrate.com/id/20cf4700-6379-4a14-9bc2-853fde8cc9d1/
建议读者去读官网介绍,英文的,不多,一般都能理解掉。实在不想看官网的,那就继续本篇文章吧。
首先是在手机(盒子,笔者是做盒子开发的,就以盒子为例)上安装cydia框架:
https://cache.saurik.com/apks/com.saurik.substrate_0.9.4010.apk
打开后,简单的英文,按照说明点一下即可。
建立好工程以后,将所需jar包导入
然后开始配置AndroidManifest.xml文件
1.Application对象,android程序最优先启动的
2.这里设置主类,跟正常的安卓工程不同,这里相当于开发一个插件,插件不是一个可以启动看起来有界面的。如:activity这些声明就没有了
3.这个权限,代表着cydia能够识别他为自己的插件,可以启动它
入口介绍:
这里initialize()是初始化相关东西,这个相当于main函数入口
然后下面的方法,看注释,这里也就不再多叙述。
这个工程的目的是,hook手机(盒子上)上面的文字,即android系统平台上setText的地方,
1首先要注意的是,我们要开始装substrate框架,如图,下载好,用adb install xxx:
2.这里我们没有Main和launch的入口,所以这个程序是没有图标显示到手机桌面的,因为我们已经指定了他是cydia的一个插件,所以这个时候,我们重启手机(盒子)即可启动此插件。
通过上面三张图的对比,发现我们已经正常写好了一个插件。之所以写这个小Demo,是为了,我们接下来更好的分析DroidPlugin相关。
相关测试demo都放到百度网盘,有兴趣的可以试试。
链接:http://pan.baidu.com/s/1bp1ahgb 密码:g0vu
第一时间获得博客更新提醒,以及更多android干货,源码分析,欢迎关注我的微信公众号,扫一扫下方二维码,即可关注。
如果你觉得好,可以分享此公众号给你更多的人,原创不易。