<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                #### **常用的Hook 工具** * **Xposed 框架** * 官網地址:http://repo.xposed.info * GitHub源碼:[Xposed](https://github.com/rovo89/Xposed) * **CydiaSubstrate 框架** * **ADBl/DDI 框架** #### **Xposed 框架** Xposed框架是一款可以**在不修改APK的情況下影響程序運行(修改系統)的框架服務**,**通過替換/system/bin/app_process 程序控制 zygote 進程,使 app_process 在啟動過程中加載XposedBridge.jar 這個jar包,從而完成對Zygote進程及其創建的Dalvik虛擬機的劫持**。基于Xposed框架可以制作出許多功能強大的模塊,且在功能不沖突的情況下同時運作。此外,Xposed框架中的每一個庫還可以單獨下載使用,如Per App Setting(為每個應用設置單獨的dpi或修改權限)、Cydia、XPrivacy(防止隱私泄露)、BootManager(開啟自啟動程序管理應用),對原生Launcher替換圖標等應用或功能均基于此框架。 Xposed框架是基于一個Android的本地服務應用XposedInstaller與一個提供API的jar文件來完成的。所以,安裝使用Xposed框架我們需要完成以下幾個步驟。 * **安裝本地服務XposedInstaller** 需要安裝XposedInstall.apk本地服務應用,我們能夠在其官網的framework欄目中找到,下載并安裝。地址為: http://repo.xposed.info/module/de.robv.android.xposed.installer 安裝好后進入XposedInstaller應用程序,會出現需要激活框架的界面,如圖8-5所示。這里我們點擊“安裝/更新”就能完成框架的激活了。部分設備如果不支持直接寫入的話,可以選擇“安裝方式”,修改為在Recovery模式下自動安裝即可。 ![](https://box.kancloud.cn/9c72942088b73b693f2f2ca176bf90d0_345x272.jpeg) ![](https://box.kancloud.cn/5a541453f0172cf50b49bb3751378f29_334x453.png) 因為安裝時會需要Root權限,安裝后會啟動Xposed的app_process,所以安裝過程中會存在設備多次重新啟動。 >[info] **注意**:由于國內的部分ROM對Xposed不兼容,如果安裝Xposed不成功的話,強制使用Recovery寫入可能會造成設備反復重啟而無法正常啟動。 * **下載使用API庫** 其 API 庫XposedBridgeApi-.jar(version 是 XposedAPI 的版本號,如我們這里是XposedBridgeApi-54.jar)文件,我們能夠在Xposed的官方支持xda論壇找到,其地址為: http://forum.xda-developers.com/xposed/xposed-api-changelog-developer-news-t2714067 下載完畢后我們需要將 Xposed Library 復制到 lib目錄(注意是 lib 目錄,不是Android提供的 libs 目錄),然后將這個 jar 包添加到 Build PATH 中,效果如圖所示。 ![](https://box.kancloud.cn/3b8ede12ae9a230423b3663919735055_308x126.png) 如果直接將jar包放置到了libs目錄下,很可能會產生錯誤`IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation`。估計Xposed作者在其框架內部也引用了BridgeApi,這樣操作可以避免重復引用。 #### **CydiaSubstrate框架** Cydia Substrate是一個代碼修改平臺。它可以修改任何主進程的代碼,不管是用Java還是C/C++(native代碼)編寫的。而Xposed只支持HOOK app_process中的 Java 函數,因此 Cydiasubstrate 是一款強大而實用的 HOOK工具。 與使用Xposed框架類似,使用Cydiasubstrate框架之前我們需要配置它的使用環境,對于強大的Cydiasubstrate框架使用其實只需要配置兩個地方。安裝Cydiastrate框架Android本地服務,下載使用Cydiastrate提供的API。 * **安裝Cydiastrate框架Android本地服務** 一個就是在Android設備中安裝Cydiasubstrate框架的本地服務應用substrate.apk,我們可以在其官網下載到。 當然,我們安裝substrate后,需要“Link Substrate Files”(連接本地的Substrate服務文件),這一步是需要Root權限的,連接后還需要重啟設備才能夠生效。Substrate服務設置應用如圖所示。 ![](https://box.kancloud.cn/c8a7f5815ea55310ccdf123193d8b8ee_319x453.png) * **下載使用Cydiasubstrate庫** Cydiasubstrate官方建議以在Android SDK Manager中添加它們插件地址的方式進行更新下載,如圖所示,在用戶自定義網址中添加 http://asdk.cydiasubstrate.com/addon.xml。 ![](https://box.kancloud.cn/67064a2d794f71eb6021f1536a0b57d1_574x402.png) 通過使用Android SDK Manager工具下載完Cydiasubstrate框架后,其存儲于目錄`${ANDROID_HOME}sdkextrassaurikitcydia_substrate`下。但是,由于Android SDK Manager在國內使用起來存在很多的限制,下載的時候也不是非常穩定,所以還是建議大家直接去官網下載開發庫。 官方下載地址為:http://asdk.cydiasubstrate.com/zips/cydia_substrate-r2.zip。 下載完成后,將得到的所有文件(很多的jar包與so庫),都復制到Android項目下的libs文件夾中,就可以直接使用了。效果如圖所示。 ![](https://box.kancloud.cn/a90ab25a86906fad36f1b84e5c8b3475_354x243.png) 其中的substrate.h頭文件與lib文件夾下的so文件是提供在使用NDK進行原生Hook程序開發中的函數支持庫。 >[info] **注意**:CydiaSubstrate框架對于inline Hook的操作目前還存在一些bug,使用的時候可能會出現崩潰的現象,部分使用了國內定制的ROM的設備在使用CydiaSubstrate框架時會出現設備無法重新啟動或無法Hook的現象。 #### **ADBI/DDI框架** ADBI(全稱為:Android Dynamic Binary Instrumentation Toolkit)即Android的動態二進制指令工具包,兼容Android中的ARM與Thmub指令,提供動態庫注入與函數Hook(包括inline Hook)。當然,其也提供了Java層的類似功能,即DDI(Dynamic Dalvik Instrumentation Toolkit)框架。 ADBI/DDI框架與Xposed和CydiaSubstrate框架最大的區別是,它是一個命令行工具,使用起來更加的簡單方便。我們可以在Github上找到其源碼,地址為: ADBI:https://github.com/crmulliner/adbi。 DDI:https://github.com/crmulliner/ddi #### **參考文章**: [《Android安全技術揭秘與防范》—第8章8.2節常用的Hook工具](https://yq.aliyun.com/articles/99823?spm=5176.100239.blogcont99909.19.6c23be47do2f4T#) * **趙四的文章** [Android中Xposed框架篇---利用Xposed框架實現攔截系統方法](http://blog.csdn.net/jiangwei0910410003/article/details/52822081) [Android中Xposed框架篇---修改系統位置信息實現自身隱藏功能 ](http://blog.csdn.net/jiangwei0910410003/article/details/52836241) [Android逆向之旅---Native層的Hook神器Cydia Substrate使用詳解 ](http://blog.csdn.net/jiangwei0910410003/article/details/73699649)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看