AOSP系统沙箱-集成gumjs引擎

在Android中使用GumJS集成FridaHook功能
本文介绍了如何在Android环境中利用GumJS编译动态库并实现Frida的Hook功能,详细步骤包括集成gumjs动态库、创建Hook管理类以及配置和启动Hook过程。

最近想在沙箱中使用frida的hook能力,有三个方案:

1 集成frida-server到系统

2 内置frida-gadget.so,然后将其加载到应用中

3 集成gumjs引擎

考虑到使用的体验性,最终打算用第三种方案

一、编译gumjs

1.1 先去frida官网下载gumjs的头文件和静态库

1.2 创建工程,导入gumjs.a和头文件

编译成动态库

二、创建Hook管理类

/frameworks/base/core/java/android/app/HookUtils.java

package android.app;


import android.content.Context;
import android.os.Build;
import android.os.Environment;
import android.os.FileUtils;
import android.util.Log;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import dalvik.system.DexClassLoader;
import org.json.JSONObject;
import org.json.JSONArray;

public class HookUtils {
    public static final String TAG = "HookUtils";
    public static HookJs hookjs;

    public static class HookJs{
        public boolean open = false;
        public String[] packageName;
        public String arm32SoPath;
        public String arm64SoPath;
        public HookJs(JSONObject js){
            try{
                open = js.getBoolean("open");
                JSONArray names = js.getJSONArray("packageName");
                if (names != null){
                    packageName = new String[names.length()];
                    for (int i = 0; i < names.length(); i++){
                        packageName[i] = names.getString(i);
                    }
                }
                arm32SoPath = js.getString("ArmSoPath");
                arm64SoPath = js.getString("Arm64SoPath");
            } catch(Exception e){
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值