V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
photonvx
V2EX  ›  Android

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

  •  
  •   photonvx · Jan 16, 2019 · 18463 views
    This topic created in 2661 days ago, the information mentioned may be changed or developed.

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

    Riru:

    https://github.com/RikkaApps/Riru

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

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

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

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

    16 replies    2021-04-27 10:57:55 +08:00
    66beta
        1
    66beta  
       Jan 16, 2019 via Android
    我大魅族不开放 BL,只能用 xposed
    aWangami
        2
    aWangami  
       Jan 16, 2019
    主要还是易用性吧
    cyhulk
        3
    cyhulk  
       Jan 16, 2019
    我只知道当年写 Xposed 的时候,7.0 的 xposed 还不知道,当时也搜了这个,但是没有过多了解,等过了一段时间 7.0 的就出来了,然后就没有关注了。我只写过 xposed 的。
    photonvx
        4
    photonvx  
    OP
       Jan 16, 2019
    @66beta 哈哈,有开放 root 就行
    alvin666
        5
    alvin666  
       Jan 16, 2019 via Android
    看生态了,不同 hook 历史不一样,就和塞班,wp,安卓,苹果一样
    现在 xp 开发者最多,第二是 magisk
    jdgui
        6
    jdgui  
       Jan 16, 2019
    因为 libmemtrack 会被 zygote 加载。所以你在 libmemtrack 中的修改等于在 zygote 修改。
    photonvx
        7
    photonvx  
    OP
       Jan 16, 2019
    @cyhulk 难道是因为 xposed 的生态建起来了,所以就越来越出名,底层技术达到的效果不知道一不一样
    photonvx
        8
    photonvx  
    OP
       Jan 16, 2019
    @alvin666 也有可能
    photonvx
        9
    photonvx  
    OP
       Jan 16, 2019
    @jdgui 如果 libmemtrack 和创建进程没关系在里面怎么修改都没用啊
    jdgui
        11
    jdgui  
       Jan 16, 2019
    @photonvx #9 https://github.com/RikkaApps/Riru/blob/master/riru-core/jni/main/init.cpp
    看代码是对 nativeForkAndSpecialize 和 nativeForkSystemServer 进行 hook。这样就可以在每个进程中执行了。
    libmemtrack 里面的方法不需要和创建进程相关,而是通过 libmemtrack 调用自己写的 hook 代码,从而达到目的。
    catalina
        12
    catalina  
       Jan 16, 2019
    作者 @RikkaW
    zeroDev
        13
    zeroDev  
       Jan 16, 2019 via Android
    因为 riru 是刚出来的
    RikkaW
        14
    RikkaW  
       Jan 16, 2019 via Android   ❤️ 1
    Riru 不是 hook 框架
    只有进去应用进程和系统服务进程
    进去之后做什么要使用的人自己发明(
    piapia
        15
    piapia  
       Jan 30, 2019
    @RikkaW #14 好像 Cydia Substrate for android 也是这个思路哎?
    lateautumn4lin
        16
    lateautumn4lin  
       Apr 27, 2021
    @jdgui 真相了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2496 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 15:39 · PVG 23:39 · LAX 08:39 · JFK 11:39
    ♥ Do have faith in what you're doing.