iOS逆向之Cycript的使用

一、Cycript簡(jiǎn)介

Cycript允許開(kāi)發(fā)者在iOS或Mac OS X上使用objective - c++和JavaScript語(yǔ)法的混合,通過(guò)具有語(yǔ)法高亮和tab補(bǔ)全功能的交互式控制臺(tái)來(lái)探索和修改正在運(yùn)行的應(yīng)用程序。(它也可以在Android和Linux上獨(dú)立運(yùn)行,并提供對(duì)Java的訪問(wèn),但不需要注入。) 更多官網(wǎng)介紹:http://www.cycript.org

圖1:Cycript簡(jiǎn)介.png

通過(guò)Cydia安裝Cycript,即可在iPhone上調(diào)試運(yùn)行中的APP。同時(shí)也需要安裝adv-cmds,ps命名有用到。

圖2:安裝Cycript.png

二、Cycript使用

以在“豆瓣”app上添加一個(gè)紅色view為例

圖5:添加紅色視圖.PNG

1、Mac連接手機(jī)

可參考文章:iOS逆向之SSH:Mac遠(yuǎn)程登錄iPhone

2、查看進(jìn)程

  • 首先確保已在Cydia安裝了adv-cmds
  • ps命令是process status的縮寫(xiě),使用ps命令可以列出系統(tǒng)當(dāng)前的進(jìn)程
  • 列出所有的進(jìn)程 ps –Aps aux
  • 搜索關(guān)鍵詞 ps –A | grep 關(guān)鍵詞ps aux | grep 關(guān)鍵詞
圖3:查看進(jìn)程.png

其中“Frodo”是豆瓣app的進(jìn)程名

3、Cycript的開(kāi)啟和關(guān)閉

  • 開(kāi)啟:cycript -p 進(jìn)程IDcycript -p 進(jìn)程名稱(chēng)
  • 取消輸入:Ctrl + C
  • 退出:Ctrl + D
  • 清屏:Command + R
圖4:Cycript的開(kāi)啟和關(guān)閉.png

其中顯示cy# 說(shuō)明已經(jīng)進(jìn)入該運(yùn)行的程序了

4、常用語(yǔ)法

  • 獲取根控制器[UIApplication sharedApplication].keyWindow.rootViewController
  • 創(chuàng)建view,并賦值給變量redView var redView = [[UIView alloc] init];
  • 設(shè)置redViewd的背景色為紅色 #0x130c11920.backgroundColor = [UIColor redColor],其中0x130c11920 為redview的內(nèi)存地址
  • 設(shè)置redViewd的frame #0x130c11920.frame = (100,100,150,200),其中0x130c11920 為redview的內(nèi)存地址
  • 根控制添加紅色視圖,[#0x130a2cea0.view addSubview:#0x130c11920],其中0x130a2cea0是根控制器的地址
圖6:常用語(yǔ)法.png

執(zhí)行后的效果,如上圖圖5所示。

三、Cycript文件庫(kù)

我們可以將常用的Cycript代碼封裝在一個(gè).cy文件中,如封裝好的mjcript.cy文件,下載地址:https://github.com/CoderMJLee/mjcript

  • 下載mjcript.cy文件,或者自己編寫(xiě).cy文件
  • .cy文件存放到/usr/lib/cycript0.9目錄下
  • Cycript中引用.cy文件,并使用它提供的接口
  • 引用命令@import mjcript,如獲取當(dāng)前控制器接口MJFrontVc()
圖7:Cycript文件庫(kù).png

四、實(shí)戰(zhàn)小練習(xí)

  • 進(jìn)入“豆瓣”app,導(dǎo)入mjcript.cy文件,`@import mjcript
  • 查看當(dāng)前控制器,MJFrontVc()
  • 遞歸打印view的層級(jí)結(jié)構(gòu),MJSubviews()
  • 通過(guò)python中,print指令,翻譯UTF-8各式文本
  • 找到對(duì)應(yīng)的按鈕,修改其文案
圖8:實(shí)戰(zhàn)小練習(xí).png
圖9:修改文案實(shí)例.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容