使用Cydia Substrate实现Android Hook

使用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反射失效,此框架还有用吗?

时间: 2024-11-03 03:46:16

使用Cydia Substrate实现Android Hook的相关文章

利用Cydia Substrate进行Android HOOK

Cydia Substrate是一个代码修改平台.它可以修改任何主进程的代码,不管是用Java还是C/C++(native代码)编写的.而Xposed只支持HOOK app_process中的java函数,因此Cydia Substrate是一款强大而实用的HOOK工具. 官网地址:http://www.cydiasubstrate.com/ Demo地址:https://github.com/zencodex/cydia-android-hook 官方教程:http://www.cydiasu

使用Cydia Substrate 从Native Hook Android Java世界

这里介绍了如何使用Cydia Substrate Hook安卓Java世界.这篇文章介绍如何从Native中Hook 安卓Java世界. 手机端配置见之前文章. 一.建立工程 建立一个Android工程.不需要创建默认的Activity.修改AndroidManifest.xml如下: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.cyd

Cydia Substrate框架Android so hook分析

最近需要用到Android so hook,于是分析了一下比较流行的Cydia Substrate框架 CydiaSubstrate框架的核心函数是MSHOOKFunction,官方使用说明如下: 现在Android 默认编译出来的都是thumb指令集的,就分析一下这个模式下的HOOK吧. 在使用MSHOOKFunction HOOK前,先用IDA attach到进程先看下准备HOOK的函数,前面18个字节的二进制指令如下: 52ABF480 30 B5       PUSH          

Android上玩玩Hook:Cydia Substrate实战

作者简介:周圣韬,百度高级Android开发工程师,博客地址:http://blog.csdn.net/yzzst 了解Hook 还没有接触过Hook技术读者一定会对Hook一词感觉到特别的陌生,Hook英文翻译过来就是“钩子”的意思,那我们在什么时候使用这个“钩子”呢? 我们知道,在Android操作系统中系统维护着自己的一套事件分发机制.应用程序,包括应用触发事件和后台逻辑处理,也是根据事件流程一步步的向下执行.而“钩子”的意思,就是在事件传送到终点前截获并监控事件的传输,像个钩子勾上事件一

Android Hook工具Cydia Substrate使用

Hook简介: Hook就是钩子,在安卓中,就是在事件传送到终点前截获并监控事件的传输,像个钩子勾上事件一样,并且能够在勾上事件时,处理一些自己特定的事件. Cydia Substrate的官网定义:The powerful code modification platform behind Cydia. Cydia Substrate是一个代码修改平台,它可以修改任何主进程的代码,不管是用Java还是C/C++(native代码)编写的. 注:Cydia Substrate框架对于inline

Cydia Substrate based DexDumper&#39;s weakness

得益于Cydia Substrate框架,HOOK Native函数变得简单,也给脱壳带来方便. 像ijiami免费版,360,classes.dex被加密到so文件并运行时释放到内存,因此针对相关函数的HOOK脱壳就比较简单了. 但也有一些容易被针对的缺点: 1.代码可以在类加载时被修改.hook dexFileParse.__mmap2或memcmp 等可能dump出是修复前的dex 2.修改了odex的标志dey\n036,dumper在内存中搜索不到,将漏掉真正的odex 3.packe

Android HOOK工具Cydia Substrate使用详解

目录(?)[+] Substrate几个重要API介绍 MShookClassLoad MShookMethod 使用方法 短信监控实例 Cydia Substrate是一个代码修改平台.它可以修改任何主进程的代码,不管是用Java还是C/C++(native代码)编写的.而Xposed只支持HOOK app_process中的java函数,因此Cydia Substrate是一款强大而实用的HOOK工具. 官网地址:http://www.cydiasubstrate.com/ Demo地址:h

(4.2.33)Android上玩玩Hook(1):Cydia Substrate初识

选自: Android上玩玩Hook? 跟着鬼哥学Android java hook (一) 摘要:Hook的出现为开发者希望通过一个程序改变其他程序的某些行为的想法开拓了解决道路,而作为一款基于Hook的代码修改框架,Cydia Substrate可以修改任何主进程的代码,本文作者以广告注入的实战详细介绍了Hook的过程. 了解Hook 还没有接触过Hook技术读者一定会对Hook一词感觉到特别的陌生,Hook英文翻译过来就是"钩子"的意思,那我们在什么时候使用这个"钩子&

Android.Hook框架Cydia篇

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 SD