iOS逆向环境搭建

1,286 阅读2分钟

提高工作效率的工具

名称 用途
Alfred 便捷搜索/工作流
XtraFinder 增强形Finder
iTerm2 完爆Terminal的命令行工具
Go2Shell 从Finder快速定位到命令行工具

Mac远程登录到iPhone

通过Mac远程登录到iPhone的方式建立连接

SSH、OpenSSH

  • SSH
    • Secure Sehll,安全外壳协议,是一种可以为远程登录提供安全保障的协议
    • 使用SSH,可以把所有传输的数据进行加密,“中间人”攻击方式就不可能实现,能防止DNS欺骗和IP欺骗
    • 是通过TCP协议通信,所以要确保MACiPhone在同一个局域网
  • OpenSSH
    • SSH协议的免费开源实现
    • 可以通过OpenSSH的方式让Mac远程登录到iPhone

###使用OpenSSH远程登录步骤

  1. ssh 帐户名@服务器主机地址,初始密码为alpine
ssh root@192.168.1.1 
  1. 进入之后可以用 passwd命令来修改密码
  2. 退出命令
exit

root、mobile

  • root: 最高权限帐户,$HOME/var/root
  • mobile: 普通权限,只能操作一些普通文件,不能操作系统级别的文件,$HOME是/var/mobile

SSH的通信过程

  1. 建立安全连接,就是利用SSL
  2. 客户端认证
    • 基于密码
    • 基于密钥
cd ~/.ssh
ssh-keygen
ssh-copy-id root@192.168.1.1
cat ~/.ssh/authorized_key
  1. 数据传输

22端口

端口:对外服务的端口

  • 21: ftp
  • 80: http
  • 22: ssh

通过USB进行SSH登录

  • 默认情况下,由于SSH走的是TCP协议,Mac是通过网络连接的方式登录到iPhone,要求iPhone连接Wifi
  • 为了加快传输速度,也可以通过USB连接的方式进行SSH登录(usbmuxd)

usbmuxd的使用

  1. 下载usbmuxd工具包
https://cgit.sukimashita.com/usbmuxd.git/
  1. iPhone的22端口映射到Mac的10010端口
python tcprelay.py -t 22:10010
  1. 连接自己的10010端口
localhost,本地虚拟网卡的IP地址,127.0.0.1
ssh root@localhost -p 10010
  1. usbmuxd会将Mac本地10010端口的TCP协议数据,通过USB连接转发到iPhone

iOS终端的中文乱码问题

  • 默认情况下,iOS终端不支持中文输入和显示
  • 解决文案:新建一个~/.inputrc文件
set convert-meta off
set output-meta on
set meta-flag on
set input-meta on
  • 如果是想在终端编辑文件内容,可以安装一个vim

Cycript的开启和关闭

  • 开启
cycript
cycript -p 进程ID
cycript -p 进程名称

Cycript常用语法

  • UIAPP
[UIApplication sharedApplication]
  • 定义变量
var 变量名 = 变量值
  • 用内存地址获取对象
#内存地址
  • 已加载的所有OC类
ObjectiveC.classes
  • 查看对象的所有成员变量
*对象
  • 递归打印view的所有子控件(跟lldb一样的函数)
UIApp.keywindow.recursiveDescription().toString()

*筛选出某种类型的对象

choose(UIViewController)

www.jianshu.com/p/c6c5571d8…