Dobby Hook Native方法
如何使用Dobby Hook __system_property_get函数达到修改设备信息
注意,本篇文章仅供学习交流,严禁用于非法用途
操作步骤如下
- 导入Dobby库,github上有开源的Dobby,拉取到本地自行编译或使用别人编译好的静态库
libdobby.a,然后导入头文件dobby.h即可 - 使用
void *target_func = DobbySymbolResolver("libc.so", "__system_property_get");方法获取函数指针 - 获取到函数指针后,我们来定义原始函数指针类型,代码如下
typedef int (*original_system_property_get_t)(const char *name, char *value);
我们来自定义一个函数,用于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);}
使用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_get的so编写好了,可搭配Xposed框架实现Hook Native层的方法,将编译好的hook.so推送到目标应用可读取的文件夹,在目标应用初始化的时候使用Xposed模块调用nativeLode方法加载hook.so即可!
Dobby Hook Native方法
评论已关闭
没有任何标签