Cydia Substrate是一个代码修改平台。它可以修改任何主进程的代码,不管是用Java还是C/C++(原生代码)编写的。而Xposed只支持HOOK app_process中的java函数,因此Cydia Substrate是 一款强大而实用的HOOK工具。
Substrate几个重要API介绍
MS.hookClassLoad
函数原型:void hookClassLoad(String name, MS. ClassLoadHook hook);该方法实现在指定的类被加载的时候发出通知。因为一个类可以在任何时候被加载,所以Substrate提供了一个方法来检测用户感兴趣的类在被加载时。
MS.hookMethod
该API允许开发者提供一个回调函数替换原来的方法,这个回调函数是一个实现了MS.MethodHook接口的对象,是一个典型的匿名内部类。 它是一个被调用的函数。
函数原型:
void hookMethod(Class _class, Member member, MS.MethodHook hook, MS.MethodPointer old); void hookMethod(Class _class, Member 成员, MS.MethodAlteration 变更);