其實學(xué)習(xí)ios 逆向知識還是很有必要的姐浮,不是抱著為了破解那個程序珠增,而是為了抱著學(xué)習(xí)的態(tài)度超歌,去學(xué)習(xí)一些好的程序的結(jié)構(gòu),用的好的框架蒂教,等等巍举,今天先來講解一些比較基礎(chǔ)的部分,iOS工具集凝垛,openssh 和cycript懊悯,(這兩個插件都可以在cydia 通過搜索下載得到)使用這些工具幫助我們?nèi)チ私庖恍┫胍某绦颉#ù宋恼聝H用于學(xué)習(xí))
工具:工具這里只需用用到一部越獄機(jī)和mac 電腦即可梦皮,越獄機(jī)目前盤古越獄已經(jīng)越到9.1了炭分,想做逆向開發(fā),還是不能將手機(jī)或測試機(jī)過早的升級届氢,這里是比較坑爹的
在cydia 安裝插件的時候我遇到了一個坑
軟件源還在刷新(loading)的時候欠窒,我就去搜索,安裝插件了退子,結(jié)果他一直報錯,因此要等軟件源刷新完畢才可以安裝型将。好吧接下來回到正題吧
1 openssh
openssh ,其實是提供了一個ssh 的服務(wù)寂祥,安裝了之后,就可以通過無線方式由電腦遠(yuǎn)程登錄到手機(jī)七兜,去訪問手機(jī)的資源丸凭,這個東西還是棒棒噠,使用openssh 腕铸,還是需要你掌握一些終端命令的惜犀,iphone 是基于unix 系統(tǒng),所以狠裹,命令行命令在iphone 上面也是行的通虽界。先來大致演示一下
(1)遠(yuǎn)程登錄
openssh 他是通過無線方式,是電腦和手機(jī)建立連接涛菠,因此手機(jī)和電腦必須要在同一個網(wǎng)絡(luò)下面莉御,電腦通過ip來訪問手機(jī),我現(xiàn)在看到我的手機(jī)的ip 是192.168.0.35俗冻,這里還要說下默認(rèn)密碼是alpine ,登錄之后必須要立即改密碼礁叔,因為安裝這個插件,還是用默認(rèn)密碼迄薄,手機(jī)也就變得不安全了琅关,任意電腦都有機(jī)會訪問到你的手機(jī)了。(還有就是有時候比較卡讥蔽,估計是可能手機(jī)鎖屏了涣易,和電腦建立連接就卡主了画机,這是可以解鎖下手機(jī),讓手機(jī)保持亮屏)
這里用到的命令是 ssh root@ip 地址 都毒,如下圖
登錄成功就要馬上修改密碼了 使用到的命令 passwd 如圖
(2)查看程序目錄結(jié)構(gòu)
改完密碼就可以愉快的色罚,安全的訪問自己的手機(jī)啦,那么來看看有什么好玩的命令账劲,這里我們必要常用到 的ps 命令,查看進(jìn)程的一些命令戳护,例如ps -e 通過這個命令可以查看自己想了解的程序,的運(yùn)行情況
這里我們看到了一個熟悉的進(jìn)程微信瀑焦,還看到了微信了沙盒路徑腌且,頓時覺得這個命令棒棒噠
ps -e 會掃出一大堆的進(jìn)程呢,能不能精確點找呢榛瓮,通過命令來ps -ef |grep WeChat 模糊匹配來查詢微信的進(jìn)程铺董,啊哈哈微信也出來了
既然知道了沙盒路徑就可以各種 cd ls 看看微信的目錄結(jié)構(gòu)了
openssh 大致就講到這里,來看一下cycript 吧禀晓。
2 cycript
cycript 也是一款很強(qiáng)大的cydia 插件精续,使用它我們可以測試一些函數(shù)的功能,去窺探一些程序的結(jié)構(gòu)粹懒,動態(tài)調(diào)試程序重付,
(1)鎖定調(diào)試目標(biāo)
通過前面的ps 命令我們已經(jīng)知道可以進(jìn)程名 和 進(jìn)程id 那么我們可以通過這些標(biāo)志來調(diào)試想要了解的程序,還是拿微信來當(dāng)例子吧凫乖,
上圖可以看到 微信的pid 是832 那么我們通過命令 cycript -p 832 來調(diào)試微信
(2)調(diào)試彈框
出現(xiàn)cy#說明訪問想要調(diào)試的程序成功了,cycript的語法也很簡單确垫,類似oc,但是變量他要用var 來表示,且不用寫* 那么嘗試些一段簡單的代碼來看看效果
我在這里 實例了一個UIAlertView ,并讓實例彈了個框帽芽,那么手機(jī)發(fā)生了什么情況
可以看到一個微信看到我調(diào)試時產(chǎn)生的彈框
(3)打印app層級結(jié)構(gòu)
也可以通過代碼獲取 app的實例對象删掀,查看他的層級結(jié)構(gòu)
今天大致就講到這里,接下來還會繼續(xù)拓展导街,如果有什么不對披泪,希望各位大神可以指出批評