iOS MonkeyDev 嘗試體驗(非越獄開發)


一、前言

  隨着iOS系統的逐漸開放,iOS越獄需求的人越來越少,那么在非越獄系統上面開發越獄插件那將是一個不錯的選擇,在github上面發現一個開源的Xcode工程模板。

  整合了越獄開發的工具、重簽名工具、以及常用的庫,方便在非越獄模式下面進行代碼的修改和插件的開發。

  這個工具有重要的意義,降低了app重新打包重簽名的門檻。讓越獄開發和普通開發一樣方便

  https://github.com/AloneMonkey/MonkeyDev

  

二、嘗試

  1)安裝

    在安裝中最方便的是直接在機器上面連接VPN,掛上外網的環境,那么安裝應該是很順暢的。

    我的環境是公司代理之下的環境,需要修改安裝腳本中的代碼

    修改方式我已經提交到:

    https://github.com/AloneMonkey/MonkeyDev/issues/120

    

    2)重啟Xcode之后,檢查工程模板中是否包含Monkey Dev的開發環境

      

 

      那么表示安裝成功。

 

    3)選擇Monkey Dev環境,建立一個空的工程,編譯到手機上。

      一般是OK的,下一步是要放入一個空的IPA到目標文件夾中,一直沒找到空的ipa,只找到一個在這里。

      App貌似是一個微博,已經不能用了。但是只要能安裝到手機上就可以

      編譯安裝到手機運行報錯:

      Reveal Are you trying to load dynamic library with Reveal Framework already linked?

      應該是App本身鏈接了一份Reveal,在工程目標的Other Link中刪掉這個庫的鏈接。

      繼續跑,出現異常導致Crash,下異常斷點。

      

      說明valueForKey中存在沒有定義的key,寫一個擴展將這個方法覆蓋掉,避免原來的方法拋出異常。

      

      直接返回空,跳過這個錯誤。可以看到App成功啟動了,然后控制台輸出了log。

2018-09-17 19:30:50.932143+0800 Weibo[522:98774] [DYMTLInitPlatform] platform initialization successful
2018-09-17 19:30:50.957942+0800 Weibo[522:98683] [MethodTrace] Method Trace is disabled
2018-09-17 19:30:50.958010+0800 Weibo[522:98683] 
               🎉!!!congratulations!!!🎉
👍----------------insert dylib success----------------👍
2018-09-17 19:30:50.958134+0800 Weibo[522:98683] [AntiAntiDebug Init]
2018-09-17 19:30:51.024275+0800 Weibo[522:98683] +[CATransaction synchronize] called within transaction
2018-09-17 19:30:51.029109+0800 Weibo[522:98683] You've implemented -[<UIApplicationDelegate> application:didReceiveRemoteNotification:fetchCompletionHandler:], but you still need to add "remote-notification" to the list of your supported UIBackgroundModes in your Info.plist.

     4)可以看到hook的代碼正常執行了

      

      接下來的事情就看想象了。

 

三、分析總結

   這個框架有幾個主要的功能

    1、一個完整的Xcode工程,包含一個App的主工程、一個dylib的動態鏈接庫工程。

    2、在App編譯完成之后,可以將目標App完成與編譯App之間的替換,這樣完成移花接木的功能。

    3、鏈接庫功能中使用了theOS中的庫,實現對OC方法的hook和C方法的hook。

    4、實現ipa中簽名文件替換,動態庫的注入

    5、可調式

    

  注意:

    注入鏈接庫之后的App,bundleID隨之改變,對於微信來說,校驗了bundleID可能會提示非法客戶端導致封號,但這個也可以通過hook解決。

     

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM