安卓黑科技之HOOK詳解

世界美景發表於2017-11-03

本文帶大家進入到安卓另一個世界 網際網路攻防大戰

Xposed框架 : 它能夠讓Android裝置在沒有修改原始碼的情況下修改系統中的API執行結果

可實現對java層任意HOOK   比如 修改 IMEI IMSI ICCID 這些全球唯一的身份標誌

HOOK 三方應用 微信 QQ 實現搶紅包 自動回覆 換膚 微信朋友圈 QQ朋友圈 改變當前位置

自動新增 附近的人介面的陌生人為好友
三方應用去掉廣告

深度定製rom   改變手機感測器靈敏度 功能太多了就不一一介紹了 

xposed框架缺點:   功能太強大,自然也有缺點。Xposed不僅僅是一個外掛載入功能,而是它從根上Hook了Android Java虛擬機器,所以它需要root,所以每次為它啟用新外掛APP都需要重新啟動 並且無法HOOK jni層


Cydia Substrate 框架:

cydia框架的優勢很明顯,同時支援jni和java層的HOOK功能,缺點也很明顯,相容性不好,官網上標註最高支援安卓4.3版,但實際中測試發現一些第三方的ROM會出現一些莫名其妙的問題,而據說有人用安卓原生5.0也可以完美執行。所以是否使用CYDIA框架,要根據你目前的硬體情況來選擇



計廠商也認識到了APP在JAVA環境下執行收集到的資訊被篡改的機率很大,所以很多廠商把目游標準了JNI層

現在APP廠商 基本上都會把比較重要的操作放在jni層操作  比如微信    連線資料庫的操作居然都放在了jni層操作 服

其實想搞你還是有辦法的你加殼  我脫殼 你把操作放在so 我就用IDA 除錯 你有反除錯 我就繞過去  不過確實能限制很多人 而且沒有一定毅力和能力 根本除錯不下去


xposed框架中文站   點選開啟連結

環境 一臺root的手機 並裝上xpsoed框架

手機root之後 在手機上直接搜尋xposed框架下載就行

失敗就百度自己機型所對應的 xpsoed框架


Xposed框架 作者 Github 地址點選開啟連結



IDE  AndroidStudio


下面進入實戰操作 本文以Xposed框架為例 畢竟我之前寫了好多xpsoed文章 但估計大部分人都不知道xpsoed是什麼

Xposed框架 包含以下工程:



Xposed,這個專案屬於Xposed框架,其實它就是單獨搞了一套xposed版的zygote。這個zygote會替換系統原生的zygote。所以,它需要由XposedInstaller在root之後放到/system/bin下。

XposedInstaller,這是Xposed的外掛管理和功能控制APP,也就是說Xposed整體管控功能就是由這個APP來完成的,它包括啟用Xposed外掛功能,下載和啟用指定外掛APP,還可以禁用Xposed外掛功能等。注意,這個app要正常無誤得執行必須能拿到root許可權。

XposedBridge。這個專案也是Xposed框架,它屬於Xposed框架的Java部分,編譯出來是一個XposedBridge.jar包。

XposedTools。Xposed和XposedBridge編譯依賴於Android原始碼,而且還有一些定製化的東西。所以XposedTools就是用來幫助我們編譯Xposed和XposedBridge的

1  新增依賴 

新增開發所需要的 XposedBridgeApi-54.jar 包


在AS 上 需要在build.gradle 把jar包 provided 私有化操作 不然沒效果


2   配置AndroidManifest.xml檔案

 第一項為true 情況下  你寫的APK才是個xpsoed框架的模組  APK裝到手機裡 點開框架的模組

就會看到你寫的模組 反之 則就是個普通的APK 框架不會檢測到該應用

第二項  每次填寫你所使用的jar包版本號

第三項  該模組在xposed框架中所顯示的描述


3 建立 MainHook 類

注意繼承 IXposedHookLoadPackage 介面

 public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        if ("".equals(lpparam.packageName))// 程式入口  可以作用與全域性 或者指定包名為某個應用
        {
            return;
        }
        readData(lpparam);

    }

4 指定當前模組入口

在main 下建立assets資料夾 並建立xposed_init.txt 檔案  內容為包名加上HOOK類的 類名



介紹到這裡就告一段落了 這裡提供一個早期的版本 程式碼比較簡陋 勿噴 大概改了36個函式 IMEI 手機卡國家  手機號碼 無線電 品牌 裝置引數 版本 SDK  主機板 製造廠商等等 早期的版本根本沒做適配 有些機型會不太好使 所以我把大部分程式碼都註釋掉了 只留下了最基本的IMEI 大家有需要可以把註釋解開

最後提一下 CSDN的檔案上傳真是服了 死活上傳不上去  顯示成功 但就跟死了是的 沒反應了 下載介面 個人主頁啥也沒有 只能用百度雲了 好氣啊

原始碼下載



相關文章