iOS逆向-用Cycript進(jìn)行運(yùn)行時(shí)分析(微信應(yīng)用)

用Cycript進(jìn)行實(shí)時(shí)修改
本文,我們將使用微信應(yīng)用來(lái)執(zhí)行所有的測(cè)試。一旦微信應(yīng)用應(yīng)用被安裝好,請(qǐng)確保它運(yùn)行在前臺(tái)。這是因?yàn)槿绻麘?yīng)用在后臺(tái),那它就會(huì)被暫停,你也不能對(duì)它做啥。

1)使用ssh命令連接手機(jī)

(SSH怎么用在簡(jiǎn)書搜索哈!)

wanggangdeMacBook-Pro:~ wanggang$ ssh root@192.168.1.100
//輸入ssh 密碼
root@192.168.1.100's password: 

2)勾住進(jìn)程

一旦應(yīng)用跑起來(lái),你可以先找到其進(jìn)程id,然后用cycript -p掛鉤其進(jìn)程。

//連接手機(jī)
wanggangdeMacBook-Pro:~ wanggang$ ssh root@192.168.1.100
//輸入密碼
root@192.168.1.100's password: 
shujinokinakenkou:~ root# ps aux | grep "weather"
mobile   15312   0.0  2.2   897008  21904   ??  Us    6:50PM   0:07.76 /var/mobile/Containers/Bundle/Application/A402E082-7FA0-40DC-9423-ADA502E06CE2/com.yahoo.weather-35524-distribution.app/yweather
root     15352   0.0  0.0   538432    496 s000  R+    7:04PM   0:00.02 grep weather
shujinokinakenkou:~ root# cy#
-sh: cy#: command not found

//勾住we chat 列出 mobile id
shujinokinakenkou:~ root# ps aux | grep WeChat
root     15361   7.1  0.1   538432    536 s000  S+    7:08PM   0:00.05 grep WeChat
mobile   15323   1.1  4.5  1041712  45096   ??  Ss    6:50PM   0:12.23 /var/mobile/Containers/Bundle/Application/B02EC742-D61A-4F7B-B5DC-9598FF2DD165/WeChat.app/WeChat
shujinokinakenkou:~ root# cycript 15312
*** _assert(!stream->fail()):../Console.cpp(1098):Main

//勾住進(jìn)程id 微信的進(jìn)程id 是15323 mobile 后面的就是
shujinokinakenkou:~ root# cycript -p 15323

//下面使用cy語(yǔ)言愉快的調(diào)試了
cy# var delegate = UIApp.delegate
#"<MicroMessengerAppDelegate: 0x13f76f8f0>"
cy# var window = delegate.window
#"<iConsoleWindow: 0x13f68b6d0; baseClass = UIWindow; frame = (0 0; 414 736); autoresize = W+H; gestureRecognizers = <NSArray: 0x13f68d020>; layer = <UIWindowLayer: 0x13f68b6b0>>"
cy# var rootVC = windown.rootViewController
throw new ReferenceError("Can't find variable: windown")

出現(xiàn)下面代碼說(shuō)明勾住進(jìn)程成功

root     15361   7.1  0.1   538432    536 s000  S+    7:08PM   0:00.05 grep WeChat
mobile   15323   1.1  4.5  1041712  45096   ??  Ss    6:50PM   0:12.23/var/mobile/Containers/Bundle/Application/B02EC742-D61A-4F7B-B5DC-9598FF2DD165/WeChat.app/WeChat

如果掛鉤成功,你可以得到一個(gè)Cycript解釋器。你可以通過(guò)Objective-C的語(yǔ)法 [UIApplication sharedApplication].來(lái)得到實(shí)例。

3)實(shí)戰(zhàn)

執(zhí)行隱藏和顯示狀態(tài)欄的命令

cy# var delegate
cy# [[UIApplication sharedApplication] setStatusBarHidden:YES]
cy# [[UIApplication sharedApplication] setStatusBarHidden:NO]
cy# [[UIApplication sharedApplication] setStatusBarHidden:YES]
cy# [[UIApplication sharedApplication] setStatusBarHidden:YES]
cy# [[UIApplication sharedApplication] setStatusBarHidden:NO]
cy# [[UIApplication sharedApplication] setStatusBarHidden:YES]
cy# [[UIApplication sharedApplication] setStatusBarHidden:NO]
cy# [[UIApplication sharedApplication] setStatusBarHidden:NO]

顯示結(jié)果,可以看到執(zhí)行命令導(dǎo)航欄消失和隱藏

導(dǎo)航欄顯示和隱藏.gif

在微信app內(nèi)彈框執(zhí)行以下命令

cy#   [[[UIAlertView alloc]initWithTitle:@"cy" message:@"guanzhuwo" delegate:ni cancelButtonTitle:@"ok" otherButtonTitles:nil, nil] show]
cy#   [[[UIAlertView alloc]initWithTitle:@"cy" message:@"guanzhuwo" delegate:ni cancelButtonTitle:@"ok" otherButtonTitles:nil, nil] show]

效果圖

彈框提示.gif

更改badge 的值執(zhí)行如下命令

cy# [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1000]
cy# [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1000]
cy# [[UIApplication sharedApplication] setApplicationIconBadgeNumber:100]
cy# [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]

效果圖(觀察微信圖標(biāo)右上角小圓點(diǎn)的變化)

badge更改.gif

有了頭文件,有了ida反編譯,配合上cycript,可以驗(yàn)證我們的各種關(guān)于微信代碼的猜測(cè),但要將這些猜測(cè)串成一個(gè)可執(zhí)行的Tweak,就需要反復(fù)的大量的實(shí)驗(yàn)。

cycript 還有其他的用法推薦這篇文章
iOS逆向工程(Cycript腳本語(yǔ)言使用與實(shí)戰(zhàn))


最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,326評(píng)論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,666評(píng)論 4 61
  • 11月初有一筆錢入賬,兩三個(gè)月后可能會(huì)用到,正常思路就是直接扔貨幣基金里不管它。但人嘛,就是喜歡作,好像不折騰一下...
    地心閱讀 1,052評(píng)論 0 50
  • 昨晚《歡樂(lè)頌》2終于大結(jié)局了,劇中最接地氣的人物就是樊大姐,邊追劇邊罵編劇的我,曾感嘆世事對(duì)她的不公、期待她和王帥...
    愛(ài)上小概率閱讀 546評(píng)論 0 3
  • 忽然對(duì)心理學(xué)失去興趣了。 說(shuō)起來(lái)這種征兆前面冬天就開(kāi)始有,緩慢增長(zhǎng),今天是來(lái)的劇烈……幾乎興趣全無(wú)了。 終于厭倦了...
    嫏嬛素素閱讀 240評(píng)論 0 1

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