今天搜索了一下 android hook 后,发现不止 xposed 一家

2019-01-16 15:57:51 +08:00
 photonvx

最近听到太极 magisk 的消息,很好奇它的原理,今天搜索了一下,居然发现了另一个 hook 框架

Riru:

https://github.com/RikkaApps/Riru

至于原理,介绍上说通过替换一个会被 zygote 进程加载的共享库 libmemtrack.so 从而实现注入

按照我的大概理解,注入得将自己的代码加到 zygote 创建 app 进程那一段里面去吧,那段代码应该在 libuart 里吧,要不然代码怎么进去。Riru 选择一个简单的 libmemtrack 为何也能注入到 app 进程

如果这样就能注入,那和 xposed 有什么不一样吗,为何 xposed 这么出名而 Riru 却知道的人不多

我只作为一个搞机发烧友来提问,没研究过 hook,真的很好奇,希望有大神科普一下

14037 次点击
所在节点    Android
16 条回复
66beta
2019-01-16 16:02:24 +08:00
我大魅族不开放 BL,只能用 xposed
aWangami
2019-01-16 16:06:50 +08:00
主要还是易用性吧
cyhulk
2019-01-16 16:10:18 +08:00
我只知道当年写 Xposed 的时候,7.0 的 xposed 还不知道,当时也搜了这个,但是没有过多了解,等过了一段时间 7.0 的就出来了,然后就没有关注了。我只写过 xposed 的。
photonvx
2019-01-16 16:12:50 +08:00
@66beta 哈哈,有开放 root 就行
alvin666
2019-01-16 16:13:37 +08:00
看生态了,不同 hook 历史不一样,就和塞班,wp,安卓,苹果一样
现在 xp 开发者最多,第二是 magisk
jdgui
2019-01-16 16:14:43 +08:00
因为 libmemtrack 会被 zygote 加载。所以你在 libmemtrack 中的修改等于在 zygote 修改。
photonvx
2019-01-16 16:14:46 +08:00
@cyhulk 难道是因为 xposed 的生态建起来了,所以就越来越出名,底层技术达到的效果不知道一不一样
photonvx
2019-01-16 16:15:29 +08:00
@alvin666 也有可能
photonvx
2019-01-16 16:19:36 +08:00
@jdgui 如果 libmemtrack 和创建进程没关系在里面怎么修改都没用啊
7sDream
2019-01-16 16:44:02 +08:00
jdgui
2019-01-16 18:15:38 +08:00
@photonvx #9 https://github.com/RikkaApps/Riru/blob/master/riru-core/jni/main/init.cpp
看代码是对 nativeForkAndSpecialize 和 nativeForkSystemServer 进行 hook。这样就可以在每个进程中执行了。
libmemtrack 里面的方法不需要和创建进程相关,而是通过 libmemtrack 调用自己写的 hook 代码,从而达到目的。
catalina
2019-01-16 19:05:23 +08:00
作者 @RikkaW
zeroDev
2019-01-16 19:50:05 +08:00
因为 riru 是刚出来的
RikkaW
2019-01-16 20:52:31 +08:00
Riru 不是 hook 框架
只有进去应用进程和系统服务进程
进去之后做什么要使用的人自己发明(
piapia
2019-01-30 20:27:40 +08:00
@RikkaW #14 好像 Cydia Substrate for android 也是这个思路哎?
lateautumn4lin
2021-04-27 10:57:55 +08:00
@jdgui 真相了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/527618

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX