前言
本文主要對iOS逆向所需要的工具或者基礎做一個大概的總結(jié)絮识,如果有什么遺漏或者錯誤,歡迎讀者指出嗽上。
想要進行逆向開發(fā)次舌,首先就是要對APP進行砸殼,砸殼又需要越獄兽愤,當然也可以直接去一些平臺下載砸殼后的APP進行逆向彼念,砸殼后就需要對APP進行靜態(tài)分析和動態(tài)分析,用reveal查看視圖結(jié)構(gòu)浅萧,用hopper查看匯編信息等等逐沙。
越獄
iOS12可用unc0ver進行越獄,至于其他iOS版本可自己查閱相關資料
iOS12越獄可參考https://zhuanlan.zhihu.com/p/58097735
iOS13之后可使用checkra.in
SSH
越獄后可以安裝OpenSSH和adv-cmds方便電腦遠程連接手機
WiFi連接:
先確保手機和電腦通處于一個Wifi環(huán)境洼畅,在手機的網(wǎng)絡設置里面找到當前的IP地址
$ ssh root@127.0.2.3
root用戶的默認密碼為:alpine吩案,登錄成功后可執(zhí)行 passwd 修改密碼
USB連接:
手機先usb連接電腦
首先安裝usbmuxd
$ brew install usbmuxd
然后進行端口映射
$ iproxy 2222 22
把當前連接設備的22端口映射到電腦的2222端口上
最后進行連接
$ ssh -p 2222 root@127.0.0.1
免密登錄:
先查看本地(MAC)之前是否已經(jīng)生成過RSA公私鑰,直接進入目錄.ssh下查看帝簇,如果其中有id_rsa和id_rsa.pub即代表已有徘郭,無需重新生成
如果沒有,直接使用如下命令生成新的
$ ssh-keygen
接著會出現(xiàn)一些問題丧肴,全部留空残揉,直接回車即可。之后就可以發(fā)現(xiàn)目錄.ssh下有了id_rsa和id_rsa.pub了
然后就是將本地公鑰發(fā)到iPhone端
$ ssh-copy-id root@localhost -p 2222
砸殼
Appstore下載的應用都是加密的芋浮,可以使用otool查看是否加密
otool -l ting | grep crypt
使用monkeyDev大神的frida-ios-dump可以實現(xiàn)一鍵砸殼抱环,非常方便,具體使用方法可參考GitHub
class-dump
class-dump 是一個工具,它利用了 Objective-C 語言的運行時特性镇草,將存儲在 Mach-O 文件中的頭文件信息提取出來濒憋,并生成對應的 .h 文件。
安裝class-dump:
可以在其class-dump 官網(wǎng)下載陶夜,將里面的 class-dump 直接放在/usr/local/bin 目錄,并給個可執(zhí)行權(quán)限即可 如果/usr/local/bin沒有添加到PATH,請自行添加
class-dump使用:
把砸殼后的ipa文件解壓得到payload文件夾裆站。文件夾里面就是.app文件条辟,終端cd到.app文件,然后執(zhí)行class-dump的命令
$class-dump -H WeChat -o ~/Desktop/wechatHeader
hopper
把砸殼后的可執(zhí)行文件拖到hopper里面就可以查看對應的匯編代碼宏胯,可以根據(jù)匯編進行自己的邏輯驗證
逆向調(diào)試
使用monkeyDev大神的無須越獄羽嫡、自動集成、只需要一個砸殼的應用可以調(diào)試砸殼后的應用