android 上的API函數鉤子,利用CydiaHook實現

來源:互聯網
上載者:User

標籤:

android 上的API函數鉤子,利用CydiaHook實現

發布將近一年了,最近發現還是有些人需要的,github上也有些人fork了。

例子代碼,發布在github上,地址:https://github.com/zencodex/cydia-android-hook

CydiaHook

利用Cydia Substrate SDK 開發,可以HOOK java層或NATIVE層 API介面。

本代碼功能

寫代碼的初衷是因為有個app,需要儲存資料到SD卡上,並且app裡面有判斷SD掛載的狀態。沒有SD卡,會造成程式邏輯有問題,很多功能無法正常使用,而My Phone沒有裝SD卡。

另外這種HOOK方式也有助於偵錯工具,不必因為修改ROM底層,而引起手機變磚,簡便好用,目前Cydia Substrate在某些手機中可能會有不穩定的情況,我測試的機型是ZTE U969,還找不到相關ROM。

  • HOOK android.os.Environment.getExternalStorageState(),強制返回,已掛在狀態。
  • 執行mount bind 掛載可以讀寫目錄到 SD卡的路徑,每個終端方案商的掛載點都可能不同,請根據自己的情況,修改成正確的掛載點路徑。
  • 可以根據自身需要,修改掛載實現函數,可以HOOK framework中的任何API。在Main.java裡,比如IMEI,GPS類比等等。
準備工作
  • ROOT過的手機一部,沒有ROOT的,請自行搜尋方法。
  • Eclipse 上安裝 Android Substrate SDK,參考:

    http://www.cydiasubstrate.com/id/73e45fe5-4525-4de7-ac14-6016652cc1b8/
  • 手機端去Google Play 下載安裝 Cydia Substrate
  • Eclipse 匯入本代碼,編譯後安裝到手機。
  • 手機上運行Substrate,介面上點擊“Link Substrate Files”,再點擊 “Restart System(Soft)”
  • 通過CydiaHook,查看掛載路徑和狀態。

參考官方的入門教程 VioletExample:

http://www.cydiasubstrate.com/id/20cf4700-6379-4a14-9bc2-853fde8cc9d1/

cydia-android-hook

Cydia Substrate demo, hook getExternalStorageState, always return MOUNTED status.

android 上的API函數鉤子,利用CydiaHook實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.