码迷,mamicode.com
首页 > 移动开发 > 详细

使用Cydia Substrate实现Android Hook

时间:2015-01-05 12:58:03      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

使用Cydia Substrate来实现Android hook,文章来自于官方提供的教程

1、安装Cydia Substrate框架apk,手机必须root。

2、代码编写;

在manifest文件中声明如下:

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.saurik.substrate.main"
            android:value=".Main" />
</application>

<uses-permission android:name="cydia.permission.SUBSTRATE" />

Main类的代码如下:

public class Main {
    
    public static void initialize(){
        hookSaygoer() ;
    }
    
    static void hookResColor() {
        MS.hookClassLoad("android.content.res.Resources",
                new MS.ClassLoadHook() {

                    @Override
                    public void classLoaded(Class<?> resources) {
                        Method getColor = null;
                        try {
                            getColor = resources.getDeclaredMethod("getColor",Integer.TYPE);
                        } catch (NoSuchMethodException e) {
                            e.printStackTrace();
                        }
                        if (getColor != null) {
                            MS.hookMethod(resources,getColor,
                                    new MS.MethodAlteration<Resources, Integer>() {
                                        public Integer invoked(Resources resources,
                                                Object... args)
                                                throws Throwable {
                                            return invoke(resources, args)& ~0x0000ff00 | 0x00ff0000;
                                        }
                                    });
                        }
                    }
                });
    }
    
}

其中initialize()相当于入口函数,代码实现的效果图如下:

技术分享技术分享技术分享

个人感觉Cydia Substrate是基于类加载,方法调用,关键还是依赖于Java反射,Android系统源码可读的当然可以进行修改,如果是第三方程序进行了代码混淆或者加密的,那么Java反射失效,此框架还有用吗?

使用Cydia Substrate实现Android Hook

标签:

原文地址:http://www.cnblogs.com/alexthecoder/p/4203217.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!