Xposed模块 -- Hook函数参数

简介: Xposed模块 -- Hook函数参数

安卓系统7.1搭建Xposed环境


安卓逆向 -- Xposed模块编写


安卓逆向 -- Jeb动态调试


一、根据以前的课程,我们通过抓包分析,知道了如下的关键函数


package com.dodonew.online.http;
import android.text.TextUtils;
import android.util.Log;
import com.dodonew.online.util.DesSecurity;
。。。。。。。。。。。。。。。。。。//省略导包
public class RequestUtil {
    public static String decodeDesJson(String json, String  desKey, String desIV) {
        if(!TextUtils.isEmpty(json)) {
            try {
                json = new String(new DesSecurity(desKey,  desIV).decrypt64(json), "UTF-8");
            }
            catch(Exception e) {
                e.printStackTrace();
            }
        }
        return json;
    }
    public static String encodeDesMap(String data, String  desKey, String desIV) {
        String v2;
        try {
            v2 = new DesSecurity(desKey,  desIV).encrypt64(data.getBytes("UTF-8"));
        }
        catch(Exception e) {
            e.printStackTrace();
            v2 = "";
        }
        return v2;
    }
 。。。。。。。。。。。。。。。。。。//省略部分函数
    }
}


二、添加一个hook的框架结构


package com.bucuo.a20210908;
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("com.dodonew.online.http.RequestUtil", loadPackageParam.classLoader,
                "encodeDesMap",//添加要hook的类名及方法名
                String.class,
                String.class,
                String.class,//hook的三个参数
                new XC_MethodHook() {
                    protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    }
                    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


禁止非法,后果自负

目录
相关文章
|
25天前
|
前端开发
自定义 Hook 编写指南
【10月更文挑战第15天】本文介绍了 React 中的 Hooks 和自定义 Hook 的基本概念、编写方法及常见问题。通过具体代码示例,详细讲解了如何在函数组件中使用状态和其他 React 特性,并分享了避免常见错误的技巧。自定义 Hook 可以帮助你将组件中的逻辑提取出来,使其更加可重用和可维护。
138 68
react-Native init初始化项目报错”TypeError: cli.init is not a function“
react-Native init初始化项目报错”TypeError: cli.init is not a function“
721 1
|
3月前
|
Dart API C语言
Dart ffi 使用问题之想在C/C++中创建异步线程来调用Dart方法,如何操作
Dart ffi 使用问题之想在C/C++中创建异步线程来调用Dart方法,如何操作
|
6月前
|
关系型数据库 MySQL API
如何使用hook?
如何使用hook?
44 0
|
JavaScript API
自定义hook是什么
自定义hook是什么
|
Android开发
Xposed模块 -- Hook函数参数
Xposed模块 -- Hook函数参数
176 0
Xposed模块 -- Hook函数参数
|
存储 JavaScript
tp5源码解析--hook(钩子函数)类详解
tp5源码解析--hook(钩子函数)类详解
282 0
tp5源码解析--hook(钩子函数)类详解
|
C++
C/C++ IAT HOOK MessageBoxW
最近在研究各种姿势的 HOOK,虽然 HOOK 这个东西已经是很久之前就有的技术了,但好在目前应用仍然很广泛,所以老老实实肯大佬们 10 年前啃过的骨头,下面是庄重的代码献祭时刻。
269 0
|
Linux
linux驱动中如何向模块传递参数方法
大家好,今天主要和大家分享一下,如何向模块传递参数? Linux kernel 提供了一个简单的框架。利用module_param和module_param_arra来实现。
184 0
linux驱动中如何向模块传递参数方法
|
前端开发
有趣的 hook - useWorker
前几天看到个有趣的 hook: useWorker。可以直接将函数转换为 worker,然后调用执行,这样便可以将一些耗时、阻塞的计算放到 worker 中执行,避免主线程阻塞。 由于很好奇这个 hook 如果在不支持 worker 的浏览器上有没有做兼容,就把源码看了一下,这里记录一下。📝