Art 模式 实现Xposed Native注入

前言:

现在 市面上的 Hook 框架有很多 ,Xposed,Frida,YAHAK 等 

Frida 是目前最火的 ,跨平台注入 框架 ,支持 java和 Naive 层

安卓 目前 沙盒注入 方式 应该 就 两种Ptrace 和 Zygote

各有各的优点和短板  曾经Hook之王 Xposed 在 Native层显得比较无力

也就导致 市场上很多 模块都 不能 进行Native层的 Hook 

一直在想着 能不能 试着 完善一下。


如何利用xposed Hook Native层 函数 - 简书

在之前这篇帖子里  简单实现了 Xposed 在 4.4的 版本的 NativeHook 

主要 原理就是 在加载 被Hook So的 时候 利用Xposed拦截 

在 java层 调用System.load函数 把Xposed 模块里面的so进行 加载注入  

在so里面 直接调用 dlopen拿到 被Hook So地址 即可

在高版本里面 是不允许直接 System.load 的 认为是 不安全的 


大概意思就是说 直接 System.load 容易被串改 在高版本会失效 应该使用 System.loadLib

这个函数是加载 app内部 Lib下So的函数   但最终 都会调用 doLoad函数 (具体 可以参考对应源码 )我们就从 这个函数入手

Xposed 先挂钩 作为 So名字 作为 条件过滤依据 


这块 有个问题 就是 怎么把 Xposed模块里面的 So注入到 目标 进程中  

在 4.4 版本的时候 可以 直接 System.load 打开即可 然后进行 装载和链接

这个 问题 我想了很长时间 有两种 可行方案 

第一种方案 :可以吧 模块里的 so 利用shell权限 进行 copy 直接 拷贝到 被 Hook的 lib下面 

然后 System.loadLib 去加载即可 因为 因为shell需要 root 会导致 被 Hook 进程 申请 Root权限才可以 

(比如 Hook A app 因为 Xposed 走的是 A所在的进程  所以如果 在 代码里申请 Root 最终 会提示A app 申请 Root)

进行操作 不方便 和 不实用 

第二种方案:直接利用反射 调用 doLoad  函数 进行 So的 加载  如图


第一个 参数 是 So的 路径 第二个参数 Classloader 其实他是一个 PathClassloader

如果 发现 加载的 So 是被Hook的 So 便进行 注入 把第二个 参数 传入 进去 反射备用


这块的 Path是 绝对路径  有人会问 为什么要这么写    

我在Hook 这个 函数的时候  把参数 1 打印了一下 可以看到 加载的 是 So的绝对路径

(这块 楼主 也有一件事 不太懂 为什么 路径 要加个 -1 很奇怪 算了 照葫芦画瓢  先这么写 )

这里科普一下 /data/data/ 下面 都是 App的数据 而/data/App/下面放的是 app 包 

然后吧 路径 改成自己Xposed模块里的 So 进行  注入 成功!

这块有个调用时机 问题 一定要在 目标 So加载完毕 以后 在进行 注入 

因为后期需要 实现 突破 7.0  dlopen 限制  需要遍历 内存对应的Map文件 

下来 开始 在 Xposed模块的 so得 JNI_OnLoad 进行  挂钩 Hook 楼主用的是 InlineHook

在 4.4 版本 以前 可以 直接 dlopen直接打开 任意目录的 So 进制 装载和链接 

在 4.4的 时候 直接打开 被Hook的 so即可 

在高版本 因为 权限问题 不能 直接打开 


具体如图

楼上图片参考 地址 https://www.cnblogs.com/eniac1946/p/7515557.html

楼主 用的是  感谢大佬提供的 轮子 

GitHub - lizhangqu/dlfcn_compat: 兼容Android 7.0 dlfcn(dlopen、dlsym、dlclose、dlerror)

  主要是遍历 Map文件 拿到so的 地址 和 dlopen的 Hook

(具体可参考 项目的 reademe)


下面 我们看看 内存里的 文件对应内容 楼主用的是 7.1的 安卓  系统 

利用GG修改器 导出内存  看看 对应 文件的 地址的映射 和 路径 


有人 会问 这个 怎么导出的? 

内存 管理页面 点导出 内存 

结束地址 随便 输入 

保存即可 

(GG修改器 是个 神器 ,可以 用来 dex脱壳  So 还原 ,Dll提取等 直接操作内存  感兴趣可以 学学  )

将路径 改为 绝对路径 

直接 dlopen打开 

拿到 句柄 以后 直接进行 用dlsym 拿到 对应函数地址 用 InlineHook 进行 挂钩  

还是以loadbuffer函数 为 目标 函数 dump lua文件 



在 my_luaL_loadbuffer 进行保存 

保存成功 

上面的 只是一个 demo 一个Hook的 模板 

Xposed 模块 可以用 这种方式 进行 so层的 Hook和 注入 

具体代码 上传到 

https://github.com/w296488320/ArtXposedNativeHook


喜欢的话可以点个关注哦 ,

如果对 逆向,脱壳,新技术 感兴趣的 同学 可以加 我Q群 欢迎各位能人志士 一起讨论

欢迎加入故事,群聊号码:773642813 

---------------------------------------------------------------------------------------------------------------------

喜欢逆向 ,有问题需要求助的 可以 加下 小密圈  不懂得可以直接问我 

我正在「故事」和朋友们讨论有趣的话题,你⼀起来吧?

https://t.zsxq.com/NbaybyN

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258