Cycript 是一款支持 OC 和 JS 混合语法,可用于动态修改 App 行为的工具。Snoop-it 是一款可以动态分析以及黑盒安全测试的工具。
Cycript
安装
直接在 Cydia 中搜索 Cycript 并安装即可。
启动
SSH 到设备上,并输入命令:
1 | cycript -p '应用 PID' |
语法参考:Cycript Tricks。
修改
以 QQ 音乐为例,先 hook 住其进程,再修改其显示的数字:
效果:
控制 QQ 音乐跳转到语音识别页面:
效果如下:
查看 Instance 的所有变量:
1 | function tryPrintIvars(a){ var x={}; for(i in *a){ try{ x[i] = (*a)[i]; } catch(e){} } return x; } |
查看 Class 的所有方法:
1 | function printMethods(className, isa) { |
Method Swizzling 替换实现:
调用 NSLog:
1 | NSLog_ = dlsym(RTLD_DEFAULT, "NSLog") |
1 | NSLog("From cycript") |
查看页面构成:
Snoop-it
功能
Snoop-it 支持的功能如下:
- 文件系统访问
- Keychain 访问
- HTTP(S) 连接 (NSURLConnection)
- 访问敏感 API(address book, photos etc.)
- 打印信息 (NSLog)
- 跟踪 App 内部行为 (objc_msgSend)
安装
直接在 Cydia 中添加源安装即可。
1 | repo.nesolabs.de |
安装完成后,在桌面可以看到 Snoop-it 的图标:
但是,目前 Snoop-it 只支持 32 位,不支持 64 位,后续支持再加上。