-
-
frida源码编译iOSServer
-
发表于:
2023-9-22 14:01
5545
-
0x00 前言
最近frida检测越来越多,遇到的APP很多都是有检测的,之前很多APP在iOS端的时候检测手段很少,但是最近连iOS端的APP都存在检测frida无法绕过的情况了,于是想要先尝试自己编译出来一个fridaserver,至于怎么去特征就是之后的事情了。
需要用到的工具以及环境信息:
0x01 编译frida
安装依赖
首先安装一些一定要使用到的依赖
在此之后可以先尝试执行以下命令,如果可以找到iPhoneos的SDK的话就可以继续之后的步骤了
1 | $ > xcrun --sdk iphoneos --show-sdk-path /Applications/Xcode .app /Contents/Developer/Platforms/iPhoneOS .platform /Developer/SDKs/iPhoneOS16 .4.sdk
|
如果没有的话就执行以下指令,然后重新查看iPhoneOS的SDK目录是否设置成功
1 2 | $ > xcode- select -- install
$ > sudo xcode- select -s /Applications/Xcode .app /Contents/Developer
|
之后新建一个文件夹,然后进入拉取frida代码
1 | git clone https: //github .com /frida/frida .git
|
这时候拉取代码之后需要先执行一下make
指令来拉取一下submodule的代码,大概是这样子
在拉取完成之后继续执行make的话就可以看到想要编译的目标类型,我们这里使用make core-ios
这个时候如果直接编译的话会报证书错误,我们要自定义一个证书
自定义证书
打开钥匙串访问
软件,在登录-所有项目中
在证书助理->创建证书功能
设置成以下内容,名称是frida-cert
,证书类型是代码签名
创建成功了之后就可以在所有项目中查看到刚才创建的证书了
然后右键显示简介
将证书勾选成始终信任,这里需要输入密码。
完成之后证书图标会变出一个蓝色的+
完成这一步之后在frida
根目录下输入export IOS_CERTID=frida-cert
,这样才可以不报错。
编译代码
这里我想使用iOSServer就使用make core-ios
来执行
中间的过程中会出现codesign
要输入密码来签名的步骤,之后稍等一段时间就可以完成编译。
最近看到这种输出的话就是编译成功了
进入build/frida-ios-arm64/usr/bin
目录下可以看到frida-server
在/usr/lib/frida
目录下存在frida-agent.dylib
运行frida
关注frida-server
以及frida-agent.dylib
两个文件,使用ssh连接到iPhone中,使用scp将这两个文件先放入手机
手机中已经存在了这两个文件之后
我们可以尝试将通过cydia/sileo
下载的frida先卸载。这个时候就没有/usr/lib/frida
这个目录了
之后我们新建这个目录并将frida-agent.dylib
放到下边
1 2 3 4 5 6 7 | ChiChis: /var/mobile/Downloads root
ChiChis: /var/mobile/Downloads root
ChiChis: /var/mobile/Downloads root
total 19M
drwxr-xr-x 3 root wheel 96 Sep 22 13:47 .
drwxr-xr-x 98 root wheel 3.1K Sep 22 13:47 ..
-rw-r--r-- 1 root mobile 19M Sep 22 13:43 frida-agent.dylib
|
然后我们执行启动./frida-server
就可以HookAPP了
0x02 后记
其实没什么技术含量,真正难的是给frida去特征,原本我试了一次直接用patch去frida特征,手机直接死给我看,编译的过程也是比较坎坷的,期间遇到了如下三次失败
1 2 3 | - iPhoneOS的SDK未设置成功导致编译失败
- 没有设置自签名导致编译失败
- frida - compile 版本过低导致编译失败
|
后续慢慢研究怎么一点一点的去特征吧。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2023-9-22 14:05
被Red256编辑
,原因: