iOS運行時工具-cycript

來源:互聯網
上載者:User

cycript是大神saurik開發的一個非常強大的工具,可以讓開發人員在命令列下和應用互動,在運行時查看和修改應用。它確實可以協助你破解一些應用,但我覺得這個工具主要還是用來學習其他應用的設計(主要是UI的設計及實現)。

這個工具使用了Objective-C和Javascript的混合模式,可以即時的和應用互動甚至修改應用。它的網址請猛戳這裡。在官網上可以下載到完整的軟體包。使用的方式有兩種,一種是在越獄的裝置上通過MobileSubstrate加裝,這樣可以在所有的應用裡使用;另一種是通過靜態庫的方式把cycript整合到自己的應用,這樣做不要求越獄,當然也只能在自己的應用內使用了。

在越獄模式下cycript的安裝:

1. 在cydia下安裝openSSH,這樣可以確保能用SSH登入到iOS裝置上,如果你已經安裝過了,可以不用繼續安裝了

2. 用sftp上傳下載的cycript_0.9.501_iphoneos-arm.deb和libffi_1-3.0.10-5_iphoneos-arm.deb安裝包到iOS裝置上


3. 用dpkg -i來安裝deb包


4. 運行cycript,如果出現cy#的符號,那麼就是安裝完成了

vcC01L2436Osy/nS1MnosbjX7rrDu7nKx7K70qrUvdP8o6ywssirtdrSu8LvoaM8L3A+CjxwPiAgICAgIGN5Y3JpcHS1xNPDt6jJz9b30qrKx9eiyOvE47nY16K1xMTHuPbTptPDtcTP37PMo6zIu7rzvs2/ydLUu/G1w2FwcKOsu/G1w3dpbmRvd6Oswv3C/cilu/G1w3ZpZXdDb250cm9sbGVyo6zW8LK91vCyvbKmv6pVSbXEw+bJtKOs1eK49tTa0afPsL6tteTTptPDtcRVScqx1ea1xMrHzt7Jz7XEwPvG96OhPC9wPgo8cD4gICAgICDPws28ysfO0tTauPrX2c6i0MW1xFVJyrG1xNH519OjrLTz1sLJz7e9z/K+zcrH1eLR+dbwsr3J7sjroaM8L3A+CjxwPiAgICAgIDxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140612/2014061209163495.jpg" alt="\">


上面的例子是在越獄的機器上安裝cycript,然後可以在任意的應用中使用。

還有一種用法是在開發過程中,把cycript的framework整合在應用中,這樣可以用於即時調整UI的參數,而且不要求機器越獄。下面給出一個最最簡單的例子:

1. 從官網下載cycript的包,是一個壓縮檔,裡麵包括三個cycript.framework,cycript.lib和cycript

2. xcode裡面建立一個target,僅僅用最簡單的singleViewApplication建立一個空白的應用,這時介面應該是一片純潔

3. 添加cycript架構以及依賴,添加cycript.framework架構是應有之義,但這個架構還需要依賴庫的支援,包括JavaScriptCore和libstdc++;這裡需要注意的是libstdc++是有版本要求的,必須是libstdc++.6.0.9.dylib,如所示

4. 設定編譯選項

為瞭解決libstdc++的相容問題,還需要在BuildSetting頁設定"Other Linker Flags",添加-lstdc++;另外還有“C++ Standard Library”,確保選擇了“Compiler Default”。如果沒有選擇特定的libstdc++版本並且正確配置編譯器選項的花,在iOS7下連結會失敗的,這一點請務必注意。

5. 修改代碼,開啟cycript監聽連接埠

這個最好用一個宏來包一下,比如用:CYCRIPT_ENABLE

#ifdef CYCRIPT_ENABLE    CYListenServer(8888);#endif

這裡的8888就是cycript的監聽連接埠,為了讓這句代碼起作用,請把CYCRIPT_ENABLE在加入到預設宏裡面。

6. 運行模擬器,這裡還有一個要說明,目前只支援64bit的,不能使用32bit的模擬器,這個也需要配置一下,然後選擇正確的模擬器運行,應用就可以跑起來了,仍然是一片純潔的UI

7. 進入cmd介面,切換路徑到cycript包的解壓目錄下,運行./cycript -r 127.0.0.1:8888

其中,127.0.0.1是你的模擬器或者裝置地址,8888就是你代碼裡面配置的監聽介面,如果正常,會進入cycript的REPL,這時就可以現場修改一些UI了,比如把白色背景改成紅色:

此時的UI應該就變成了紅色背景。

cycript的使用基本方法就是這樣了,剩下的就是如何使用的問題了,這個一方面需要對iOS的架構有足夠的瞭解,另一方面也需要積累經驗。





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.