hook實踐---Xposed框架hook源代碼

最近了解到Xposed這個框架,真乃神器,有了它,你就可以在root過的Android手機上“為所欲為”了,像之前朋友和我安利的微信搶紅包插件、各種定制的修改系統(tǒng)默認ui的插件阿都可以通過這個框架來實現(xiàn),想想都是美滋滋~于是抽空倒騰了一下,先跑個demo看看吧



hook前的準備步驟:

1.先把手機root了(root了之前不用了的小米手機,root以前,小米系統(tǒng)是爸爸,root以后,有root權限的app都是爸爸)

2.安裝Xposed框架下載鏈接戳這里

安裝以后打開app,界面是這個樣子的,紅字顯示未激活:

3.點擊進入“框架”,看到XposedBridge.jar對應激活那一欄顯示的是“---“,確實沒激活

4.點擊“安裝/更新”進行激活,這時會彈窗提示是否獲取root權限,當然要獲取啦。然后系統(tǒng)會自動重啟,重啟以后再次進入app,可以看到XposedBridge.jar已經(jīng)激活成功了,版本是54



demo---hook TextView的setText方法

情景:往輸入框中寫東西,點擊按鈕,文本框中獲取輸入框中的數(shù)據(jù)并顯示

目標:hook TextView的setText方法,把內(nèi)容進行篡改

代碼如下:

然后就是寫hook程序啦,寫hook程序有四步:

1.引入Xposed Api

2.配置hook 程序信息

3.寫hook程序

4.運行程序,啟動hook模塊

1.引入Xposed?Api

首先需要下載Xposed?Api的jar包:

下載鏈接戳這里

之前看到安裝的框架里XposedBridge.jar的版本是54,因此我這里下了個53版本的Api(剩下的只有81、82了,都比54大)

下載下來的jar包,放入新建的AS工程的libs文件夾下,然后將其添加為library。

在build.gradle中添加依賴:

2.配置hook程序信息

在AndroidManifest中添加meta-data:

3.寫hook程序

需要實現(xiàn)IXposedHookLoadPackage接口,實現(xiàn)handleLoadPackage方法:

在handleLoadPackage中可以設置要hook的包名,這里指定了先前寫好的demo的包名。然后在XposedHelpers.findAndHookMethod中指定要hook的類、方法及方法的參數(shù)類型。新建一個XC_MethodHook的實例,里面的beforeHookedMethod方法會在hook到的方法前執(zhí)行,在這里可以獲取到hook到的方法的參數(shù),做一些自己的處理,我這里就把原文本之前加了個”hooked“,里面的afterHookedMethod方法會在hook到的方法后處理,可以設置方法的結(jié)果,這里沒有做處理。

在寫好hook程序以后,需要對其做一個聲明,這樣XposedInstaller才能找到它,這里需要main下新建一個assets文件夾,在assets文件夾下新建xposed_init文件,在這個文件里做hook程序入口類的聲明:

4.運行程序,啟動hook模塊

運行程序,然后在XposedInstaller中勾選hook程序

再重啟手機,hook程序就能生效了!


demo效果

可以看到textView中設置的text果然被hook程序做了額外處理,hook成功~~~

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容