工具:
名称 | 作用 | 描述 | |
---|---|---|---|
盘古越狱 | 越狱 | ios越狱 | |
dumpdecryted | 把Musical.ly.decrypted文件导出来之后需要用这个工具进行砸壳 | 因为苹果所有的IPA都是加密的,我们要反汇编,必须要进行砸壳 | |
class-dump | 利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件 | ||
Cycript | 进程注入的工具 | ||
hopper | 反编译工具利用Musical.ly.decrypted文件 | Hopper是一款运行在Mac、Windows和Linux下的调试(os x only)、反汇编和反编译的交互式工具。可以对32、64位的MAC程序、Windows程序和IOS程序(arm)进行调试、反编译等 | |
debugeserver | 用来确认目标函数 | 在未找到签名函数的时候使用 | |
theos | 进程注入 | 利用运行时的方法替换,调试你的目标函数,一般用来确定签名函数。需要自己写代码来hook函数 | |
burp suit | 抓包工具,比charles还强大,charles抓https会出现丢包的情况 | 主要是用来抓https请求 | |
openssh | 通过terminal登录越狱手机 | ||
socat | 在terminal打印log | 能够通过命令决定开始和结束,还有内容过滤功能 | debug必备 |
ssh | 通过ssh实现面密码登录越狱手机 | 自动化必备 | |
sshpass | 可以在terminal执行手机上的脚本 | 自动化必备 |
语言
语言 | 作用 |
---|---|
ios | 完成函数hook相关的调试 |
python | 写服务端的脚本、IO操作、数据处理 |
shell | 在iphone上进行IO的操作,工具的自动化的执行 |
实现思路
通过猜测、debugserver、theos对签名函数进行确认。实现服务端脚本,在custom端请求数据的时候,通过shell和python脚本进行参数的传递,在iphone上用cycript进行签名函数的调用并得到返回值,再通过脚本传回来,发送到custom。
具体操作
1.越狱,太极或者pp越狱助手
2.通过openssh登录iphone
3.使用dumpdecryted进行砸壳,得到xx.decrypted文件
4.使用hopper工具进行反编译得到oc头文件和汇编码
5.使用debugserver和hopper就行配合,逐个函数排除,定位签名函数,并确认签名函数
6.在mac上新建入参文件
7.用python写一个服务端脚本
8.通过脚本把签名函数的入参写入本地的入参文件,把入参文件发送到iphone(sshpass)
9.通过脚本在iphone执行函数的注入,拿到签名字符串,保存到iphone再发送到mac
10.最后通过server发送给客户端
参考资料
dumpdecrypted
逆向工程
hack论坛
class-dump安装
hopper
theos 进程注入
安全技术精粹
cycript进程注入
theos教程
debugeserger教程
移动App入侵与逆向破解技术-iOS篇
Hopper+LLDB
系统log输出
存ssh pub key到手机
iOS有两个进程,一个是developer者进程。一个是appstore的进程。是两套系套。”SpringBoard" 是developer进程的UI根进程
iPhone上需要安装的软件:OpenSSH,Cycript,Vi,shell,sshpass,免密码登录ssh