博主头像

用于存储编写的程序代码

Dobby Hook Native方法

如何使用Dobby Hook __system_property_get函数达到修改设备信息
注意,本篇文章仅供学习交流,严禁用于非法用途

操作步骤如下

  1. 导入Dobby库,github上有开源的Dobby,拉取到本地自行编译或使用别人编译好的静态库libdobby.a,然后导入头文件dobby.h即可
  2. 使用void *target_func = DobbySymbolResolver("libc.so", "__system_property_get");方法获取函数指针
  3. 获取到函数指针后,我们来定义原始函数指针类型,代码如下

typedef int (*original_system_property_get_t)(const char *name, char *value);

  1. 我们来自定义一个函数,用于DobbyHook替换掉原始函数,代码如下`original_system_property_get_t original_system_property_get = nullptr;

    static int new_system_property_get(const char name, char value) {

    if (strcmp(name, "ro.product.model") == 0) {
        strcpy(value, "customModel");
        return strlen(value);
    }
    return original_system_property_get(name, value);

    }

  2. 使用DobbyHook函数替换原始函数,代码如下

    if (target_func) {

            DobbyHook((void *) target_func, (dobby_dummy_func_t) new_system_property_get,(dobby_dummy_func_t *) &original_system_property_get);

}

至此,Dobby Hook __system_property_getso编写好了,可搭配Xposed框架实现Hook Native层的方法,将编译好的hook.so推送到目标应用可读取的文件夹,在目标应用初始化的时候使用Xposed模块调用nativeLode方法加载hook.so即可!

Dobby Hook Native方法
本文作者 x-program
发布时间 2024-02-01

评论已关闭