使用Cycript修改支付寶app運行時
Cycript: Objective-JavaScript ,它懂Objective-C,也懂javascript。
我們能夠借助Cycript使用Objective-C或者javascript ,給某個正在運行的進程的runtime發送消息。
本文以修改支付寶app界面為例,介紹Cycript的使用方法。
1)安裝Cycript
到Cycript官方網站下載資源工具,然後推進已越獄的iPhone中,進行安裝:
dpkg -i cycript_0.9.461_iphoneos-arm.deb dpkg -i libffi_1-3.0.10-5_iphoneos-arm.deb
2)確定支付寶進程
運行支付寶app,然後獲取它的進程號:
Primer:/ root# ps aux | grep Portal mobile 479 0.6 4.3 590776 44956 ?? Ss 5:14PM 0:09.58 /var/mobile/Applications/8723004E-9E54-4B37-856D-86292780E958/Portal.app/Portal root 497 0.0 0.0 329252 176 s000 R+ 5:21PM 0:00.00 grep Portal
3)Cycript鉤住支付寶進程
Primer:/ root# cycript -p 479 cy#
4)獲取當前界面的viewController並修改背景色
cy# var app = [UIApplication sharedApplication] @"" cy# app.delegate @"" cy# var keyWindow = app.keyWindow @"<UIWindow: 0x1654abb0; frame = (0 0; 320 568); gestureRecognizers = ; layer = >" cy# var rootController = keyWindow.rootViewController @"" cy# var visibleController = rootController.visibleViewController @"" cy# visibleController.childViewControllers @["","","",""] cy# var assetsController = new Instance(0x16577250) @"" cy# assetsController.view.backgroundColor = [UIColor blueColor] @"UIDeviceRGBColorSpace 0 0 1 1"
當然,隻是修改個背景色好沒意思……想修改更多信息,還得介紹一下另一個利器: class-dump 。下篇再總結~