[ios] 新手IOS tweak越獄app開發記錄


     需要改變原先程序功能流程的話,是要用到Logos Tweak 開發。另外,.在蘋果商城下載到的app,不能直接拿來分析。需要先做一定的前期准備。網上有很多相關的寫第一個越獄插件的文章,這里就不在贅言了。僅僅記錄一些注意事項。留待日后自己如果忘記了,就回過頭來看看。

一般分為以下的步驟.

    1.准備已經越獄的iphone或ipad.系統不要最新,ios 6,7,8比較適宜。

    2.Xcode要事先配置好越獄開發的環境,比如以下程序要先下載並安裝好:

         1>theos<MACOS> 這個是在xcode沒有安裝iosOpenDev的環境下,手工開發tweak程序,需要用到的。如果已經安裝並配置好了iosOpenDev環境,這一步可以直接無視。話說如果用命令行裝theos,少不了一些輔助工具比如brew, 可以在終端使用這條命令下載

 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

         2>Clutch<IOS> 這個是用來“一鍵”破解應用在提交蘋果商城之后,蘋果官方加的密.該軟件相當傻瓜化。如果找不到,需要添加源:"apt.so/brian0817"或者"cydia.radare.org"。也可以去Clutch官方托管地址“https://github.com/KJCracks/Clutch/releases”下載,下載后將Clutch-2.0.4放到越獄手機的usr/bin目錄下(密碼默認為alphine),然后使用命令“scp Clutch-2.0.4 root@192.168.1.168:/usr/bin/”。具體操作可參考:https://blog.csdn.net/yahibo/article/details/93749149

         3>Class-Dump<MACOS> 這個程序的功能是比ida的F5解析出來的代碼更容易看懂。 可以在"http://stevenygard.com/download/class-dump-3.5.dmg"下載到。<ios下在Cydia里搜索'class-dump'安裝,Mac下可以百度找到下載>代碼基本接近原生的源碼。

         4>SSH<MACOS> ,這個主要用於連接ios系統,<ios下在Cydia里搜索'SSH Connect'安裝,Mac下直接在apple store搜索 ssh安裝>以完整權限的方式實現代理操作.比如查看ios系統里當前的運行日志,以及一些需要在ios系統的機器下才能完成的操作。

         5>ondeviceconsole<IOS> ,這個程序顧名思義,<在Cydia里搜索安裝>.就是用來在mac上顯示ios系統運行的日志的。當然要在SSH登錄之后,才能使用此命令.並且特別要注意是小寫。

         6>dpkg<MACOS> .這個是安裝我們寫好的越獄app用的.

 可能遇到的一些問題:

    1.ssh連接不上.這個需要核對ios系統所在的IP,以及ssh的密碼不要去頻繁改動.

    2.clutch的版本要在1.4.7及以上,要將下載好的程序放在 /usr/bin/下,而且如果在ios系統上的Mobiletermial上修改好權限為777,也可以在mac下的ssh里敲入:

   chmod +x /usr/bin/Clutch-2.0.4 或者

   chmod 777 clutch  。注意命令clutch對大小寫敏感.這里不能錯,否則會提示沒有此命令。命令:Clutch -- daib 代表破解全部應用 Clutch QQ表示只破解名稱為QQ的app。可能一次還不能破解成功,要多試幾次。【如果運行clutch的時候,提示“zsh: killed”,可能是ios版本太高的原因,可以嘗試使用CrackerXI+】

    3.在xcode里,安裝寫好的插件,要用"Product/Build For/Profiling"進行安裝.而且選項卡“Build Settings”里,要配置好以下幾個選項:

          1>iosOpenDevDevice :192.168.1.101  這里填你的ios設備的IP地址。一般是wifi下的局域網ip

          2>iosOpenDevInstallOnProfiling:YES 這就是為什么我們要在Profiling下生成並安裝的原因,當然你也可以選擇 OnAnyBuild,在任何編譯生成動作之后開始安裝.

          3>iosOpenDevUsePackageVersionPList:YES .這個好像是便於版本控制.具體我也不太清楚用途。自己百度之.

    4.在"Build Phases"選項卡里,Link Binary With Libaries這里除了要添加代碼中用到的引用項之外,還要引用 libsubstrate.dylib。因為默認是沒有這個引用的,也就無法找到hook的核心鏈接庫在哪了。特別需要注意的是,iosopendev自帶的那個libsubstrate.dylib貌似不能自適應ios的cpu架構,需要從目標ios設備上將文件“/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate”拷貝並且替換掉

    5.在安裝的過程中,如果之前安裝成功過一次,改動一些代碼之后,再去安裝。會提示 "status database area is locked by another process “的錯誤.實際上是由於生成的緩存或者是插件還在運行當中,占用的進程,導致程序無法被替換。這個時候,要先"Clean",或者在ios設備上退出與插件引用相關的進程。

 

________________________________

后記:

1.SSH連接的時候,命令是:ssh root@192.168.xx.xx,這個IP地址必須是同一局域網內的ios設備上的,不能錯。也可以進行免密保存:iosod sshkey -h 192.168.xx.xx

2.Clutch是運行在ios上基於cydia的app,可能的路徑是 /var/mobile/,由於在ssh上敲入的clutch,結果一直提示未知的命令。實際上是因為這些app運行起來大小敏感。必須輸入Clutch。

更多關於Clutch的操作可以參考:http://www.lookgame.com/jiaocheng/shouyou/469/

3.class-dump 的使用。路徑問題切記,新破解的ipa需要先解壓出來,然后用解壓出來的可執行文件去嘗試。不能直接將.ipa拿去反編譯。

class-dump -H /Users/wuxiping/Desktop/Dessembly/QQ-v6.5.8.437-no-name-cracker/Payload/QQ.app -o /Users/wuxiping/Desktop/Dessembly/Pojie/

 如果以上還是提示錯誤的話,可以嘗試下面的命令行

class-dump -H /Users/wuxiping/Desktop/Dessembly/QQMusic -o /Users/wuxiping/Desktop/Dessembly/Pojie

 


免責聲明!

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



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