界面分析
准备工作(手机工具在越狱商店安装)
Mac,手机安装openSSH。用来远程连接到越狱手机来进行动态的界面分析以及lldb的动态调试(Mac可通过安装iproxy进行端口转发,通过USB连接手机)
- Mac,手机安装reveal。用来查看APP界面结构
- 手机安装Cycript。用来打印APP界面信息
工具使用
- reveal分析: 手机安装reveal后,在设置中将要查看的APP开关打开后,将Mac端和手机端至于同一局域网内后,启动该APP~
- Cycript分析:
通过sshMac远程连接到手机
执行”ps -e”或者”ps aux”命令打印出所有进程信息,找到你要分析APP的进程ID
执行cycript -p id(进程ID),或者cycript -p name(APP二进制名), 即可注入该APP
常用的cycript命令(类似Objective-C语法,且有自动补全):
NSHomeDirectory() ===> 打印沙盒目录
[[NSBundle mainBundle] bundleIdentifier] ===> 打印BundleID
UIApp.keyWindow.recursiveDescription().toString() ===> 打印当前window的界面结构
[[[UIWindow keyWindow] rootViewController] _printHierarchy].toString() ===> 打印当前window的控制器界面结构
[[UIApp keyWindow] _autolayoutTrace].toString()
UI的内存地址实例(#0x152345).hidden=YES ===> 设置对应UI隐藏
UI的内存地址实例(#0x728278).nextResponder ===> UI的事件响应链
(Cycript还能加载脚本,可将方法写到脚本中,具体看书~)