【iOS逆向】Cycript的基本使用
写在前面
本文主要是介绍一下逆向中Cycript的基本用法。
简单介绍
Cycript是OC、C++、JS、Java等多种语法的一个混合物,它是用来探索、修改、调试当前正在运行的APP,这个在我们以后逆向的过程中会经常使用到,关于Cycript的更多介绍大家可以参考Cycript官网。
安装Cycript
在Cydia里面搜索Cycript进行下载,如下:
Cycript的基本使用
Cycript的开启和关闭
1、开启
- 保持Mac和iPhone的安全连接
- 使用命令
cycript -p 进程ID
或cycript -p 进程名称
如下:
这样我们就处于一个Cycript的语法环境。
2、关闭
快捷键:control + D
3、清屏
快捷键:command + R
查看进程的ID和名称
在以后逆向中,我们需要使用cycript -p 进程ID
或cycript -p 进程名称
来探究某个APP,那么这个进程ID和进程名称我们应该从哪里获取呢。
1、在Cydia中搜索adv_cmds
并安装
2、使用ps
相关命令查看
我们这里以【喜马拉雅】APP为例:7091就是进程ID,ting就是进程名称,由于进程ID可能随时会发生变化,建议以后使用进程名称。
这样我们就可以监听这个进程了。
Cycript中常用的语法
- 获取当前进程的Application
[UIApplication sharedApplication] 或 UIApp |
- 定义变量
var 变量名 = 变量值 |
这样在当前内存环境下,只要我们输入app
就可以获取window。
- 获取当前APP的RootViewController
UIApp.keyWindow.rootViewController |
- 根据内存地址获取对象
#内存地址 |
- 查看对象的所有成员变量
*对象 |
- 递归打印view的所有子控件
UIApp.keyWindow.recursiveDescription().toString() |
- 筛选中某种类型的对象
choose(UIViewController) |
封装Cycript文件
一般我们会把一些常用的cycript语法封装在.cy文件中,使用起来会方便很多,具体步骤如下:
- 封装好.cy文件
- 复制.cy文件到iFunBox的目录
usr/lib/cycript0.9
里面 - 关掉当前进程 重新进入:cycript -p 进程名称
- 导入该文件:@import cy文件
MJCycript文件
大佬已经把一些常用的、实用的相关函数给封装好了,大家可以去下载Github。
按照我们上面讲的方式导入就可以使用:
现在我们来看一下例子:如何创建一个View并把它添加到APP上。
写在最后
关于Cycript的简单介绍我们就分享到这里了,如有错误请多多指教。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ayanokouji!
评论