iOS逆向-用Cycript进行运行时分析(微信应用)
2017-07-27 00:00
1181 查看
iOS逆向-用Cycript进行运行时分析(微信应用)
http://www.jianshu.com/p/bb65b76c1b4b用Cycript进行实时修改
本文,我们将使用微信应用来执行所有的测试。一旦微信应用应用被安装好,请确保它运行在前台。这是因为如果应用在后台,那它就会被暂停,你也不能对它做啥。
1)使用ssh命令连接手机
(SSH怎么用在简书搜索哈!)wanggangdeMacBook-Pro:~ wanggang$ ssh root@192.168.1.100 //输入ssh 密码 root@192.168.1.100's password:
2)勾住进程
一旦应用跑起来,你可以先找到其进程id,然后用cycript -p挂钩其进程。//连接手机 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 //勾住进程id 微信的进程id 是15323 mobile 后面的就是 shujinokinakenkou:~ root# cycript -p 15323 //下面使用cy语言愉快的调试了 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")
出现下面代码说明勾住进程成功
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
如果挂钩成功,你可以得到一个Cycript解释器。你可以通过Objective-C的语法 [UIApplication sharedApplication].来得到实例。
3)实战
执行隐藏和显示状态栏的命令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]
显示结果,可以看到执行命令导航栏消失和隐藏
导航栏显示和隐藏.gif
在微信app内弹框执行以下命令
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 的值执行如下命令
cy# [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1000] cy# [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1000] cy# [[UIApplication sharedApplication] setApplicationIconBadgeNumber:100] cy# [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]
效果图(观察微信图标右上角小圆点的变化)
badge更改.gif
有了头文件,有了ida反编译,配合上cycript,可以验证我们的各种关于微信代码的猜测,但要将这些猜测串成一个可执行的Tweak,就需要反复的大量的实验。
cycript 还有其他的用法推荐这篇文章
iOS逆向工程(Cycript脚本语言使用与实战)
作者:wg689
链接:http://www.jianshu.com/p/bb65b76c1b4b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章推荐
- iOS应用程序安全(4)-用Cycript进行运行时分析(Yahoo天气应用)
- iOS应用程序安全(4)-用Cycript进行运行时分析(Yahoo天气应用)
- iOS应用程序安全(5)-用Cycript做运行时分析的高级技巧(Yahoo天气应用)
- iOS应用程序安全(5)-用Cycript做运行时分析的高级技巧(Yahoo天气应用)
- 【读书笔记】iOS应用逆向工程-分析与实践(第二章)
- iOS逆向之分析微信导航栏实现
- 【读书笔记】iOS应用逆向工程-分析与实践(第三章)1
- iOS应用崩溃日志分析低内存闪退 因为低内存崩溃日志与普通崩溃日志略有不同,所以本教程特别分开说明一下。 iOS设备检测到低内存时,虚拟内存系统发出通知请求应用释放内存。这些通知发送到所有正在运行
- 还在等待漫长的iOS构建过程?来试试通过命令行的方式进行iOS应用快速构建和运行吧
- iOS逆向 微信消息界面分析
- iOS应用安全Part4:使用Cycript进行运行时分析
- Cycript实战(微信-登陆界面)-iOS逆向工程
- iOS应用逆向工程(四):利用Cycript 操作运行时
- 第三章:iOS应用运行时解析——3.3 Cycript和Runtime Analysis
- IOS安全–使用lldb对应用进行运行时分析
- iOS应用程序安全(15)-使用iNalyzer对iOS应用进行静态分析
- iOS应用程序安全(16)-使用iNalyzer对iOS应用进行动态分析
- Reveal逆向工程:分析任意iOS应用的UI界面
- 【读书笔记】iOS应用逆向工程-分析与实践(第一章)
- iOS应用程序安全(22)-使用GDB进行运行时分析和操作