记录iOS越狱开发的学习笔记
- MacOS
- 越狱手机
- Reveal (查看UI以及运行时地址(包括控件和ViewController))
- usbmud工具包 (主要用到里面的tcprelay脚本进行端口转发)
- cycript (在越狱手机上安装)
- openssh (在越狱手机上安装)
- PP助手 (用于安装越狱app,避免自己手动脱壳)
- Hopper Disassembler v4
- Xcode
- PostMan
- Calculator (计算16进制地址转换)
- 配置mac的ssh
file: .ssh/config
Host 5s
Hostname localhost
User root
Port 8888
- 使用tcprelay进行端口转发
tcprelay.py -t 22:8888
- ssh登录手机
ssh 5s
- Cycript绑定目标进程
cycript -p 应用程序名称/pid
-
在电脑上打开Reveal软件,定位目标控件的地址
-
在cycript中执行
var vc = #地址
- 执行对应的方法
- 在Mac上使用tcprelay进行端口转发
tcprelay.py -t 22:8888 (用于ssh登录)
tcprelay.py -t 1234:1234 (用于lldb调试)
- ssh登录到手机
ssh 5s
- 在手机上启动debugserver
ps -e | grep xxx
debugserver *:1234 -a pid
- 在Mac上开启lldb进行调试
lldb
(lldb)process connect connect://localhost:1234
- 获取应用的ASLR偏移 在lldb调试器中,执行
image list -o -f
br s -a 0x1234xxx
class-dump -A -a --arch arm64 -H -o header -S <上一步得到的二进制文件>
- 使用Hopper打开上面的二进制文件,会得到汇编代码
1.如果断点打在方法开头,则可以使用 po $arg3,$arg4,$arg5...查看方法的参数 $arg1是该方法的实例, $arg2暂时不知
- 如何查看方法的返回值呢?