首页
社区
课程
招聘
[原创]Android内核无痕Hook理解和感悟
发表于: 2026-4-9 10:49 46617

[原创]Android内核无痕Hook理解和感悟

2026-4-9 10:49
46617
收藏
免费 0
打赏
分享
打赏 + 5.00雪花
打赏次数 1 雪花 + 5.00
 
赞赏  mb_ndaywdez   +5.00 2026/05/19 感谢分享~
最新回复 (415)
雪    币: 124
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
126
学习一下先进经验
2026-4-13 11:17
0
雪    币: 101
活跃值: (480)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
127
666666
2026-4-13 16:28
0
雪    币: 870
活跃值: (2300)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
128
这个讨论对我很有帮助,谢谢!
2026-4-13 20:51
0
雪    币: 0
活跃值: (1534)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
129
6666
2026-4-13 23:47
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
130
谢谢分享
2026-4-14 09:56
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
131
6666
2026-4-14 10:08
0
雪    币: 33
活跃值: (2548)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
132
666
2026-4-14 10:13
0
雪    币: 601
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
133
5555
2026-4-14 10:24
0
雪    币: 1551
活跃值: (5338)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
134
哟西
2026-4-14 11:01
0
雪    币: 85
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
135
学不完,根本学不完
2026-4-14 11:04
0
雪    币: 29
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
136
111111
2026-4-14 11:45
0
雪    币: 1718
活跃值: (7703)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
137
1
2026-4-14 11:58
0
雪    币: 29
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
138
MTE就无解,无敌了么?
2026-4-14 14:13
0
雪    币: 7874
活跃值: (7029)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
139
66666666666
2026-4-14 14:33
0
雪    币: 439
活跃值: (588)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
140
666
2026-4-15 11:37
0
雪    币: 5153
活跃值: (5897)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
141
感谢分享。
2026-4-15 12:18
0
雪    币: 196
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
142
66666666
2026-4-15 13:06
0
雪    币: 6
活跃值: (222)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
143
这个是真牛
2026-4-15 21:11
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
144
牛啊
2026-4-16 09:54
0
雪    币: 107
活跃值: (760)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
145
我就知道有这么一天大家都会盯上内核异常机制的
2026-4-16 10:35
0
雪    币: 107
活跃值: (760)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
146

格式错误,我在楼下贴新的

最后于 2026-4-16 11:56 被dadadasda编辑 ,原因: 格式错误
2026-4-16 11:52
0
雪    币: 107
活跃值: (760)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
147

拿markdown重写一下

我可能读得不是很仔细,所以有个状态计算上的小疑问:

  • DBI相当于整体重编译了一整个标记UXN的页,还是
  • 只在击中UXN页上函数入口(由用户层标记)的时候触发一次DBI编译,对每个函数入口触发分配一段幽灵内存实现替代。

前者的话

每个函数入口的位置(原UXN页offset)应该在指令膨胀后的DBI页面集里位置(DBI区offset)不太好算吧(所以我觉得这个可能性不大)。无遗漏的话需要建立1024指令=>1024+指令的offst映射。

后者的话

确实对一般带ret且指令位于UXN页内的函数指令体应该是没有问题,相当于把函数拆散了放置在各个幽灵页的DBI区。 但对于UXN页内的B型指令,有时候B到的地址也位于UXN页面内而且其指令体位于函数体外部这个处理感觉会有点奇怪。

例如, UXN页中局部的一种情况,上到下地址递增:

// 假设编译器发疯了把这部分可复用指令放到了函数体前面
// block位于UXN页内
block:
    ....
    B block-back
//block end


func: //target 函数
        stp ... //函数头部
        
        ....
        B block //B出,地址也位于UXN页内
        ...
    block-back: //跳回位置
        ...
        ret
//func end

这时候DBI动态编译会把block部分代码也在幽灵内存中动态生成吗?

或者是block确实位于func后方,那确实block在映射后1024指令时候不会位于UXN页面

func: //target 函数
        stp ... //函数头部
        
        ....
        B block //B出,地址也位于UXN页内
        ...
    block-back: //跳回位置
        ...
        ret
//func end

---UXN PAGE end ----

block:
    ....
    B block-back
//block end

但这时候B block-back时候相当于也执行状态X进入了UXN页, 但如果block是复用块,被UXN页外调用进而从block-back进入UXN页触发exception,以block-back开头的指令块它不是常规函数入口点,它也会被重写DBI块吗?这样是不是就相当于一个函数有了多个重写的指令部分。

也即是有以下疑问

  1. 由于标记UXN页是一个粗粒度4096长度的标记,这个指令体内可能存在非hook函数的进入入口,这部分是怎么处理的。
  2. DBI重编译时候是否能识别到非顺序排布指令块(非后续1024指令长度)的部分并将其加入到DBI影视基地内部。

以上这些都是比较极端的场景,实际上应当分析完整体函数逻辑后确定以合适方案hook(比如干脆就局部用HWBP)。

最后于 2026-4-16 12:03 被dadadasda编辑 ,原因: 追加说明
2026-4-16 11:54
1
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
148
666
2026-4-16 16:16
0
雪    币: 274
活跃值: (740)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
149
4
2026-4-16 21:15
0
雪    币: 95
活跃值: (3317)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
150
6666666666666666
2026-4-17 11:24
0
游客
登录 | 注册 方可回帖
返回