iOS逆向相关知识梳理

逆向的知识很久没用了,准备梳理下

一、工具

Cydia 不解释

iFunBox方便查看iPhone文件

SSH和OpenSSH

SSH

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登录

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# 
l连接本地成功后,映射的窗口会有以下信息

SSL和OpenSSL

SSL和OpenSSL

Cycript

cycript.png

reveal层级(东西南北)

Reveal是一款调试iOS程序UI界面的神器
需要环境配置
  • iPhone上安装Reveal Loader

  • 软件源:http://apt.so/codermjlee

  • 不要安装其他源的版本,有可能不支持新版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

class-dump

class-dump.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容