使用Android studio 开发cydiasubstrate插件

本文介绍了如何使用Android Studio开发Cydia Substrate插件,Cydia Substrate是一个强大的代码修改平台,支持对Java和C/C++代码的HOOK。文章详细讲解了MS.hookClassLoad和MS.hookMethod等重要API的使用,并提供了从创建工程、添加SDK到编写hook代码的步骤,帮助开发者入门Cydia Substrate开发。
摘要由CSDN通过智能技术生成

Cydia Substrate是一个代码修改平台.它可以修改任何主进程的代码,不管是用Java还是C/C++(native代码)编写的.而Xposed只支持HOOK app_process中的java函数,因此Cydia Substrate是一款强大而实用的HOOK工具.

官网地址:http://www.cydiasubstrate.com/
官方教程:http://www.cydiasubstrate.com/id/38be592b-bda7-4dd2-b049-cec44ef7a73b
SDK下载地址:http://asdk.cydiasubstrate.com/zips/cydia_substrate-r2.zip
Substrate几个重要API介绍

1.MS.hookClassLoad
该方法实现在指定的类被加载的时候发出通知。因为一个类可以在任何时候被加载,所以Substrate提供了一个方法用来检测用户感兴趣的类何时被加载.

name 包名+类名,使用java的.符号
hook MS.ClassLoadHook的一个实例,当这个类被加载的时候,它的 classLoaded 方法会被执行。

函数原型:void hookClassLoad(String name, MS.ClassLoadHook hook);

2.MS.hookMethod
该API允许开发者提供一个回调函数替换原来的方法,这个回调函数是一个实现了MS.MethodHook接口的对象,是一个典型的匿名内部类。它包含一个invoked函数。

_class 加载的目标类,为classLoaded传下来的类参数
member 通过反射得到的需要hook的方法(或构造函数). 注意:不能HOOK字段 (在编译的时候会进行检测).
hook MS.MethodHook的一个实例,其包含的invoked方法会被调用,用以代替member中的代码

void hookMethod(Class _class, Member member, MS.MethodHook hook, MS.MethodPointer old);

_class 加载的目标类,为classLoaded传下来的类参数
member

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值