ios逆向入门扫盲笔记

/ 默认分类 / 0 条评论 / 893 浏览

本站的所有程序和文章,仅限用于学习和研究目的;不得用于商业或者非法用途,否则,一切后果请用户自负!!

ios逆向笔记

第一次接触ios逆向,记录下的东西。写给像我一样的ios逆向新手。扫盲

基础知识

ios安装包后缀ipa

ios应用安装后和mac的程序一样,和安卓的安装不一样

ISO ipa安装目录

/private/var/containers/Bundle/Application

/private/var/mobile/Containers/Data/Application

安卓apk 的安装目录:

system/app 系统自带的应用程序

data/app 用户程序安装的目录

hook使用frida

ios越狱cydia

cyida添加源安装对应服务端

https://www.jianshu.com/p/71587d8b39f4

开发工具xcode

编程语言oc(objective-c)

静态分析ida,hopper

连接iPhone设备使用openssh(也可以用usb连接)

默认密码alpine

https://www.jianshu.com/p/d5fbacb1bf5c

逆向分析

IOS下逆向常规操作判断该APP是否加壳(加密),有壳就砸壳,但是一般下载过来的ipa都是有壳的,我们直接砸壳提取出ipa,然后利用IDA或者Hopper对脱壳后的Mach-O文件进行分析。

砸壳

可以先把安装目录下的二进制Mach-O提取出来,判断是否有壳

otool -l 可执行文件 | grep crypt

cryptid 0 = 无壳

查看 cryptid 即可(有壳为1,已脱壳为0)

如果无壳就拖入ida直接开始分析

如有壳直接用frida-ios-dump砸壳

安装方法:

git clone https://github.com/AloneMonkey/frida-ios-dump
cd frida-ios-dump
pip install -r requirements.txt --upgrade

安装完成所需的依赖后打开dump.py进行配置。

如使用openssh需要更改下面的配置,如使用的usb,可以使用下面的默认配置

User = 'root'
Password = 'alpine'#默认的密码
Host = 'localhost'
Port = 2222 #根据自己的端口进行修改
KeyFileName = None

使用方法:

python3 dump.py APP名字
或者
python3 dump.py Bundle identifier

将手机与电脑连接,打开APP,执行frida-ps -Ua,查看APP名字和Identifier。

frida-ps -Ua
 PID  Name    Identifier
----  ------  --------------------
7312  APP名字  com.xxxx.tomatodo

然后进行砸壳

python3 dump.py APP名字,或者Identifier

随后会在frida-ios-dump的根目录生成ipa安装

提取二进制文件

把安装解压

unzip xxxx.ipa

得到payload文件夹

进入提取对应的Mach-O二进制文件

二进制分析

学oc

学汇编

二进制分析

抓包

工具:Charles,burp

抓包http,iPhone设置代理

抓包tcp

工具:tcpdump,rvictl

1使用rvictl创建虚拟网卡

rvictl -s -l -x rvictl -s <UDID> //开启虚拟网卡 在wireshark中选中rv0网卡 rvictl -x <UDID> //关闭虚拟网卡

2.使用tcpdump

在cydia搜索安装tcpdump,

tcpdump -w ghost.cap开始抓包

项目地址

https://github.com/safe6Sec/IOSNote

本文最后编辑时间为: 2021-05-12

如本文对你有帮助,点击下面广告支持一下吧,创作不易,感谢大佬。

safe6