安卓逆向 -- Hook多个dex文件

简介: 安卓逆向 -- Hook多个dex文件

往期文章


Xposed模块 -- Hook函数参数


一、主要代码


package com.bucuo.a20210908;
import android.app.Application;
import android.content.Context;
import android.util.Log;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
public class hook implements IXposedHookLoadPackage {
    public void handleLoadPackage(final LoadPackageParam loadPackageParam) throws Throwable {
        Log.d("逆向有你", "hook成功");
        if(!loadPackageParam.packageName.equals("com.dodonew.online")) return;
        Log.d("逆向有你","hooking.....");
        findAndHookMethod(Application.class,"attach", Context.class,
                new XC_MethodHook() {
                    protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    }
                    protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                       ClassLoader cl= ((Context)param.args[0]).getClassLoader();
                       Class<?> hookclass=null;
                       try {
                           hookclass=cl.loadClass("com.dodonew.online.http.RequestUtil");
                       }catch (Exception e){
                           Log.e("逆向有你","未找到类",e);
                           return;
                       }
                       Log.d("逆向有你","已找到类");
                       findAndHookMethod(hookclass, "encodeDesMap", String.class, String.class, String.class, new XC_MethodHook() {
                           @Override
                           protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                               String args0 = (String) param.args[0];
                               String args1 = (String) param.args[1];
                               String args2 = (String) param.args[2];
                               Log.d("逆向有你", args0);
                               Log.d("逆向有你", args1);
                               Log.d("逆向有你", args2);
                           }
                       });
                    }
                });
    }
}


二、效果和上节课一样


0a2653c851af460fa595bd959398a8f1.png


禁止非法,后果自负


目录
相关文章
|
9天前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
18 1
|
9天前
|
Shell Android开发
Android系统 init.rc文件详解
Android系统 init.rc文件详解
27 0
|
9天前
|
Java Android开发 C++
Android源代码定制:MK文件执行顺序|属性覆盖
Android源代码定制:MK文件执行顺序|属性覆盖
17 2
Android源代码定制:MK文件执行顺序|属性覆盖
|
9天前
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
44 1
|
9天前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
31 1
|
9天前
|
Android开发
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
3 0
|
9天前
|
存储 安全 Ubuntu
Android 生成平台应用签名keystore文件
Android 生成平台应用签名keystore文件
8 0
|
Android开发
【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )(二)
【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )(二)
122 0
|
Android开发
【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )(三)
【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )(三)
174 0
|
Java Android开发
【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )(一)
【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )(一)
241 0