① 使用SSH WIFI 方式连接iOS设备(密码登录)
ssh root@ip
默认密码是alpine
② 使用USB方式SSH连接iOS设备(密码登录)
// 将22端口映射到本地的10010端口
iproxy 10010 22
// 通过本地请求转发到10010端口
ssh -p 10010 root@127.0.0.1
输入默认密码 alpine 即可连接成功
③ 使用USB连接SSH免密码登录iOS设备
// 第一步:将本地电脑的公钥文件拷贝到iOS设备上(拷贝时需要输入密码)
// (如果iOS设备的/var/root/.ssh文件夹不存在,则手动创建.ssh文件件)
scp -P 10010 ~/.ssh/id_rsa.pub root@localhost:~/.ssh
// 第二步:使用密码登录到iOS设备,并且cd进入到.ssh文件夹
ssh root@localhost -p 10010
// 第三步:将.ssh文件中的id_rsa.pub文件内容,追加到authorized_keys文件尾部
// 如果authorized_keys文件不存在,会自动创建该文件
cat id_rsa.pub >> authorized_keys
// 第四步:删除.ssh文件夹中的id_rsa.pub文件
rm id_rsa.pub
// exit退出之后,重新使用以下命令即可免密码登录
ssh root@localhost -p 10010
④ 使用frida-ios-dump砸壳
第一步:先安装python和pip
第二步:frida-ios-dump是基于frida的,所以先要在手机和电脑上安装frida
Mac上安装frida的命令:
sudo pip install frida
或者
sudo pip install frida –upgrade –ignore-installed six
iPhone上安装frida的方法:
打开Cydia->软件源->编辑->添加,输入build.frida.re,添加软件源后,搜索安装Frida即可
如果出现ImportError: No module named paramiko
安装pyinstaller
pip install pyinstaller
安装frida-tools
python3 -m pip install frida-tools
如果还有其他报错:ImportError: No module named 'xxx'
直接:sudo pip install 'xxx'
第三步:终端cd到下载的frida-ios-dump-master文件夹中,修改dump.py文件中配置信息
// 根据实际情况修改以下配置信息
User = 'root'
Password = 'alpine'
Host = 'localhost'
// 当前映射端口
Port = 10010
第四步:电脑连上iOS设备之后,执行以下命令,查看当前手机安装的App
// 使用python文件查看
./dump.py -l
第五步:执行以下命令,脱壳你想要的App
./dump.py [Display name] #或者
./dump.py [Bundle identifier]
dump成功后会在你电脑当前文件夹生成app.ipa
将ipa后缀名改为zip,解压之后,得到App的可执行二进制文件。使用以下命令可以查看文件的加密情况
// 使用otool命令
otool -l WeChat | grep crypt
// 输出
cryptoff 16384
cryptsize 138199040
cryptid 0
其中cryptid为0表示非加壳程序
⑤ 使用MachOView预览二进制文件
将脱壳的应用二进制文件拖入MachOView中,就可以查看App的大致代码
⑥ 使用class-dump导出Mach-O文件信息
class-dump 用来dump目标文件的class信息的工具。它利用Objective-C语言的Runtime的特性,将存储在mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件
一、下载地址
二、打开终端输入
open /usr/local/bin
三、把dmg文件中的class-dump文件复制到/usr/local/bin
四、更改权限:终端输入
sudo chmod 777 /usr/local/bin/class-dump
五、将砸完壳的应用ipa后缀名改为zip之后解压,得到Payload文件夹
用终端输入命令class-dump -H [.app文件的路径] -o [输出文件夹路径]
class-dump -H /Users/mac/Desktop/Payload/Kt.app -o /Users/mac/Desktop/Payload
⑦ 使用Reveal 预览App
第一步:在手机的Cydia应用上下载并安装Reveal Loader插件,并在iOS系统设置首页中找到Reveal选项,将想要预览的App开关打开
第二步:下载电脑版Reveal,官网地址
第三步:配置Reveal文件
找到应用中的iOS Library -> RevealServer.framework -> RevealServer
将 RevealServer 二进制文件重命名为 libReveal.dylib
一、使用iFunBox找到手机根目录的Library文件夹,新建一个名为RHRevealLoader文件夹,将刚才重命名的libReveal.dylib文件放到里面
二、将刚才电脑上的RevealServer.framework文件,使用iFunBox拷贝到手机根目录下的System -> Library -> Frameworks 文件夹下
重启手机之后,就可以预览App的布局视图了
完美越狱手机重启后不受影响
非完美越狱手机需要重新越狱
⑧ Cycript调试正在运行的App
第一步:通过Cydia安装Cycript插件
第二步:通过ps -A 命令查看手机上所有正在运行的进程
第三步:使用 cycript -p [进程id 或者 进程名称] 进入调试模式
Cycript支持OC、C++、JS和java的混合语法
使用自定义封装的cy文件方式:
1. 将cy文件放到手机的usr -> lib -> cycript0.9 文件夹中
2. SSH连上iOS设备,进入cycript调试模式后输入 @import 文件名
⑨ 使用theos注入代码
第一步:通过brew安装ldid
brew install ldid
第二步:修改电脑根目录下的.bash_profile文件,配置theos环境变量
# 将theos安装在根目录下的theos文件夹中
export THEOS=~/theos
# 将theos的可执行目录配置为全局路径
export PATH=$THEOS/bin:$PATH
修改完.bash_profile文件后,在命令行执行source ~/.bash_profile 使配置生效
第三步:使用以下终端命令,下载theos工具源代码,并放在~/theos目录下
git clone --recursive https://github.com/theos/theos.git $THEOS
第四步:创建deb插件项目
1. 在桌面创建一个文件夹,并cd进入文件夹
2. 在终端执行 nic.pl
NIC 2.0 - New Instance Creator
------------------------------
[1.] iphone/activator_event
[2.] iphone/activator_listener
[3.] iphone/application_modern
[4.] iphone/application_swift
[5.] iphone/cydget
[6.] iphone/flipswitch_switch
[7.] iphone/framework
[8.] iphone/library
[9.] iphone/notification_center_widget
[10.] iphone/notification_center_widget-7up
[11.] iphone/preference_bundle_modern
[12.] iphone/theme
[13.] iphone/tool
[14.] iphone/tool_swift
[15.] iphone/tweak
[16.] iphone/tweak_with_simple_preferences
[17.] iphone/xpc_service
选择iphone/tweak类型的项目,上面的序号为15,所以输入15
根据指示依次输入项目名、包名、作者名、以及要注入代码的App bundle identifier
PS:包名获取方式:
1、使用 cycript -p [进程id 或者 进程名称] 进入调试模式
2、执行 [[NSBundle mainBundle] bundleIdentifier] 即可得到输出
第五步:编写tweak项目
1、打开刚刚创建的iphone/tweak项目,在makefile文件顶部添加以下代码
export THEOS_DEVICE_IP=127.0.0.1
export THEOS_DEVICE_PORT=10010
当前使用的是usb方式连接的手机,映射的端口号是10010
2、在Tweak.x文件中编写hook代码,格式如下:
%hook ClassName
- (id)initWithFrame:(struct CGRect)arg1 {
return nil;
}
%end
3、编写完成后,开始编译并执行程序
3.1、cd进入tweak项目目录
3.2、执行make命令编译
3.3、执行make package 打包项目
3.4、执行make install 将项目安装到手机上
3.5、手机会自动重启Springboard,完成后打开App,即可看到效果
卸载手机上的tweak插件项目
通过iFunBox,找到手机上Library -> MobileSubstrate -> DynamicLibraries
删除文件夹中的 xxtweak.dylib 和 xxtweakplist 两个文件,xxtweak为刚刚创建的tweak项目名
⑩ 使用logify命令将头文件转成.x文件
// 使用 ">" 表示覆写文件 如果是 ">>" 表示追加内容
logify *.h > *.x