iOS执行时工具-cycript
? ? ? cycript是大神saurik開發(fā)的一個很強大的工具,能夠讓開發(fā)人員在命令行下和應(yīng)用交互,在執(zhí)行時查看和改動應(yīng)用。它確實能夠幫助你破解一些應(yīng)用,但我認為這個工具主要還是用來學習其它應(yīng)用的設(shè)計(主要是UI的設(shè)計及實現(xiàn))。
? ? ? 這個工具使用了Objective-C和Javascript的混合模式,能夠?qū)崟r的和應(yīng)用交互甚至改動應(yīng)用。它的網(wǎng)址請猛戳這里。在官網(wǎng)上能夠下載到完整的軟件包。使用的方式有兩種,一種是在越獄的設(shè)備上通過MobileSubstrate加裝,這樣能夠在全部的應(yīng)用里使用;還有一種是通過靜態(tài)庫的方式把cycript集成到自己的應(yīng)用,這樣做不要求越獄,當然也僅僅能在自己的應(yīng)用內(nèi)使用了。
? ? ? 在越獄模式下cycript的安裝:
? ? ? 1. 在cydia下安裝openSSH,這樣能夠確保能用SSH登錄到iOS設(shè)備上,假設(shè)你已經(jīng)安裝過了,能夠不用繼續(xù)安裝了
? ? ? 2. 用sftp上傳下載的cycript_0.9.501_iphoneos-arm.deb和libffi_1-3.0.10-5_iphoneos-arm.deb安裝包到iOS設(shè)備上
? ? ??
? ? ? 3. 用dpkg -i來安裝deb包
? ? ??
? ? ? 4. 執(zhí)行cycript,假設(shè)出現(xiàn)cy#的符號,那么就是安裝完畢了
? ? ??
? ? ? 安裝之后自然是使用,這個用法網(wǎng)上講得比較具體了,非常多拿的還是支付寶的樣例,所以在這里順便提醒一下小伙伴們,如今設(shè)備集成了越來越多的應(yīng)用,重要性和不可替代性都是越來越高,所以設(shè)備不妨不要越獄,安全第一嘛。
? ? ? cycript的使用方法上主要是注入你關(guān)注的那個應(yīng)用的線程,然后就能夠獲得app,獲得window,慢慢去獲得viewController,逐步逐步撥開UI的面紗,這個在學習經(jīng)典應(yīng)用的UI時真的是無上的利器!
? ? ? 下圖是我在跟蹤微信的UI時的樣子,大致上方向就是這樣逐步深入。
? ? ??
? ? ? 上面的樣例是在越獄的機器上安裝cycript,然后能夠在隨意的應(yīng)用中使用。
? ? ? 另一種使用方法是在開發(fā)過程中,把cycript的framework集成在應(yīng)用中,這樣能夠用于實時調(diào)整UI的參數(shù),并且不要求機器越獄。以下給出一個最最簡單的樣例:
? ? ? 1. 從官網(wǎng)下載cycript的包,是一個壓縮文件,里面包含三個cycript.framework,cycript.lib和cycript
? ? ? 2. xcode里面新建一個target,只用最簡單的singleViewApplication創(chuàng)建一個空白的應(yīng)用,這時界面應(yīng)該是一片清純
? ? ? 3. 加入�cycript框架以及依賴,加入�cycript.framework框架是應(yīng)有之義,但這個框架還須要依賴庫的支持,包含JavaScriptCore和libstdc++;這里須要注意的是libstdc++是有版本號要求的,必須是libstdc++.6.0.9.dylib,例如以下圖所看到的
? ? ??
? ? ? 4. 設(shè)置編譯選項
? ? ? ? ? 為了解決libstdc++的兼容問題,還須要在BuildSetting頁設(shè)置"Other Linker Flags",加入�-lstdc++;另外還有“C++ Standard Library”,確保選擇了“Compiler Default”。假設(shè)沒有選擇特定的libstdc++版本號而且正確配置編譯器選項的花,在iOS7下鏈接會失敗的,這一點請務(wù)必注意。
? ? ? 5. 改動代碼,打開cycript監(jiān)聽port
? ? ? ? ? 這個最好用一個宏來包一下,比方用:CYCRIPT_ENABLE
#ifdef CYCRIPT_ENABLECYListenServer(8888); #endif
? ? ? ? ? 這里的8888就是cycript的監(jiān)聽port,為了讓這句代碼起作用,請把CYCRIPT_ENABLE在添�到預(yù)設(shè)宏里面。
? ? ? 6. 執(zhí)行模擬器,這里另一個要說明,眼下僅僅支持64bit的,不能使用32bit的模擬器,這個也須要配置一下,然后選擇正確的模擬器執(zhí)行,應(yīng)用就能夠跑起來了,仍然是一片清純的UI
? ? ? 7. 進入cmd界面,切換路徑到cycript包的解壓文件夾下,執(zhí)行./cycript -r 127.0.0.1:8888
? ? ? ? ? 當中,127.0.0.1是你的模擬器或者設(shè)備地址,8888就是你代碼里面配置的監(jiān)聽接口,假設(shè)正常,會進入cycript的REPL,這時就能夠現(xiàn)場改動一些UI了,比方把白色背景改成紅色:
? ? ??
? ? ? 此時的UI應(yīng)該就變成了紅色背景。
? ? ??
? ? ??
? ? ? cycript的使用基本方法就是這樣了,剩下的就是怎樣使用的問題了,這個一方面須要對iOS的框架有足夠的了解,還有一方面也須要積累經(jīng)驗。
轉(zhuǎn)載于:https://www.cnblogs.com/hrhguanli/p/3799001.html
總結(jié)
以上是生活随笔為你收集整理的iOS执行时工具-cycript的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经典ICP算法的问题
- 下一篇: 知识点2