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


禁止非法,后果自负

目录
相关文章
|
2月前
MFC -- 键盘全局HOOK
MFC -- 键盘全局HOOK
12 0
|
8月前
react-Native init初始化项目报错”TypeError: cli.init is not a function“
react-Native init初始化项目报错”TypeError: cli.init is not a function“
527 1
|
3月前
|
关系型数据库 MySQL API
如何使用hook?
如何使用hook?
15 0
|
8月前
|
JavaScript API
自定义hook是什么
自定义hook是什么
|
Android开发
Xposed模块 -- Hook函数参数
Xposed模块 -- Hook函数参数
143 0
Xposed模块 -- Hook函数参数
|
存储 JavaScript
tp5源码解析--hook(钩子函数)类详解
tp5源码解析--hook(钩子函数)类详解
255 0
tp5源码解析--hook(钩子函数)类详解
|
C++
C/C++ IAT HOOK MessageBoxW
最近在研究各种姿势的 HOOK,虽然 HOOK 这个东西已经是很久之前就有的技术了,但好在目前应用仍然很广泛,所以老老实实肯大佬们 10 年前啃过的骨头,下面是庄重的代码献祭时刻。
236 0
|
Linux
linux驱动中如何向模块传递参数方法
大家好,今天主要和大家分享一下,如何向模块传递参数? Linux kernel 提供了一个简单的框架。利用module_param和module_param_arra来实现。
156 0
linux驱动中如何向模块传递参数方法
|
前端开发
有趣的 hook - useWorker
前几天看到个有趣的 hook: useWorker。可以直接将函数转换为 worker,然后调用执行,这样便可以将一些耗时、阻塞的计算放到 worker 中执行,避免主线程阻塞。 由于很好奇这个 hook 如果在不支持 worker 的浏览器上有没有做兼容,就把源码看了一下,这里记录一下。📝
ReactHooks11-自定义hook函数
ReactHooks11-自定义hook函数
69 0
ReactHooks11-自定义hook函数