逆向的知识很久没用了,准备梳理下
一、工具
Cydia 不解释
iFunBox方便查看iPhone文件
SSH和OpenSSH
SSH的通信过程
1、建立安全连接
2、客户端认证(SSH2可以基于密码的客户端认证,每次使用账号密码认证;也可以基于密钥的客户端认证,免密码)
3、数据传输
建立安全连接
密钥登录认证
22端口说明
iPhone默认是使用22端口进行SSH通信,采用的是TCP协议
端口就是设备对外提供服务的窗口,每个端包都有个端口号(范围是0-~65535, 共2^16个)
有些端口号是保留的,已经规定了用途,比如
21端口提供FTP服务
80端口提供HTTP服务
22端口提供SSH服务(可以查看/etc/ssh/sshd config的Port字段)
更多保留端口号:https://baike.baidu.com/item/%E7%AB%AF%E5%8F%A3%E5%8F%B7/10883658#4
通过wifi进行SSH登录
手机权限权限有 root# 和mobile$
登录 ssh root@10.1.1.193手机ip地址
root : 最高权限用户$HOME是/var/root
mobile:普通权限账户,只能操作一些普通文件 ,不能操作系统级别的文件,$HOME是/var/mobil
通过USB进行SSH登录
usbmxd的使用1
下载usbmuxd工具包(下载v1.0.8版本 ,主要用到里面的一个python脚本:tcprelay.py)
下载地址
1、将iPhone的22端口(SSH端口)映射到Mac本地的10010端口
~/Document/iOS/usbmuxd zy$ python tcprelay.py -t 22:10010
Forwarding lacal port 10010 to remote port 22
2、连接本地服务ip地址映射的端口如10010端口
localhost 、127.0.0.1
~zy ssh root@localhost -p 10010
~root#
SSL和OpenSSL
Cycript
reveal层级(东西南北)
Reveal是一款调试iOS程序UI界面的神器
建议下载至少Reveal4版本,支持USB连接调试,速度快。低版本的只能WiFi连接调试
需要环境配置
iPhone上安装Reveal Loader
不要安装其他源的版本,有可能不支持新版Reveal
安装完Reveal Loader后,打开【设置】,选择需要调试的APP
找到Mac的Reveal中的RevealServer文件,覆盖iPhone的/Library/RHRevealLoader/RevealServer文件
选择USB方式开始调试
二、逆向流程
1.界面分析
Cycript. Reveal
2.代码分析
对Mach-0文件的静态分析
MachoView、 class-dump、 Hopper Disassembler、ida等
class-dump-H ~/Desktop/recipe -o ~/Desktop/recipeHeaders
3.动态调试
对运行中的APP进行代码调试
debugserver, LLDB
4.代码编写
注入代码到APP中
必要时还可能需要重新签名、打包ipa