- 軟件大小:164KB
- 軟件語(yǔ)言:中文
- 軟件類型:國(guó)產(chǎn)軟件
- 軟件類別:免費(fèi)軟件 / 常用工具
- 更新時(shí)間:2022-02-16 15:19
- 運(yùn)行環(huán)境:Android
- 軟件等級(jí):
- 軟件廠商:
- 官方網(wǎng)站:暫無(wú)
721KB/中文/10.0
1KB/中文/6.6
2KB/中文/5.0
2KB/中文/5.0
2KB/中文/5.0
riru-core模塊官方版是讓用戶可以制作出自己模塊,擁有了軟件以后用戶的手機(jī)將會(huì)更加的強(qiáng)大,讓用戶使用手機(jī)擁有更多的功能和權(quán)限,用戶可以輕松的獲得更加有趣的手機(jī)功能。
Riru 只做一件事,注入 zygote 以允許模塊在應(yīng)用程序或系統(tǒng)服務(wù)器中運(yùn)行它們的代碼。
Riru是Magisk的模塊,所以首先要安裝Magisk Manager,如果用戶沒(méi)有,小編這里為用戶提供了下載地址:http://www.lz0519.com/soft/484716.html
Magisk Manager下載安裝以后,按照:模塊 - 從存儲(chǔ)安裝 - 選擇下載的zip的步驟就可以輕松安裝了。
為什么要做出 Riru 呢?
因?yàn)?libmemtrack.so 只有一個(gè),如果有人想用替換 libmemtrack 的套路來(lái)做點(diǎn)什么別人就做不了。所以就制造了 Riru 來(lái)占下 libmemtrack 但是提供了模塊這樣的東西。
她怎么工作呢?
簡(jiǎn)而言之,替換一個(gè)會(huì)被 zygote 進(jìn)程加載的共享庫(kù)。
首先要找到那個(gè)共享庫(kù),而且那個(gè)共享庫(kù)要越簡(jiǎn)單越好,所以就盯上了只有 10 個(gè)導(dǎo)出函數(shù)的 libmemtrack。 然后就可以自己提供一個(gè)叫 libmemtrack 并且也提供了原來(lái)的函數(shù)們的庫(kù),這樣就可以進(jìn)去 zygote 進(jìn)程也不會(huì)發(fā)生爆炸。(然而現(xiàn)在看來(lái)選 libmemtrack 也不是很好)
接著如何知道自己已經(jīng)在應(yīng)用進(jìn)程或者系統(tǒng)服務(wù)進(jìn)程里面。 JNI 函數(shù) (com.android.internal.os.Zygote#nativeForkAndSpecialize & com.android.internal.os.Zygote#nativeForkSystemServer) 會(huì)在應(yīng)用進(jìn)程或者系統(tǒng)服務(wù)進(jìn)程被 fork 出來(lái)的時(shí)候被調(diào)用。 所以只要把這兩個(gè)函數(shù)換成自己的。這部分很簡(jiǎn)單,只要 hook jniRegisterNativeMethods 因?yàn)樗?libandroid_runtime 里面的 JNI 方法都是通過(guò)這個(gè)注冊(cè),然后就可以再調(diào)用 RegisterNatives 來(lái)替換它們。
構(gòu)建
在 Android Studio 或命令行執(zhí)行 gradle task :riru-core:assembleMagiskRelease,zip 會(huì)被存到 release。
Riru的原理是通過(guò)替換會(huì)被Zygote加載的libmemtrack.so從而實(shí)現(xiàn)Zygote注入,而安卓應(yīng)用進(jìn)程都是從Zygote fork的,注入了Zygote也就等同于注入了接下來(lái)會(huì)啟動(dòng)的游戲,也就可以輕松實(shí)現(xiàn)修改了。然后hook掉Zygote.nativeForkAndSpecialize函數(shù)監(jiān)聽(tīng)app啟動(dòng)。
MD5:9ef34e9cb45ed3519bcf170ffed84cf3
請(qǐng)描述您所遇到的錯(cuò)誤,我們將盡快予以修正,謝謝!
*必填項(xiàng),請(qǐng)輸入內(nèi)容