iOS端frida源码编译

admin 2024年5月14日21:06:40评论3 views字数 1827阅读6分5秒阅读模式

0x00 前言

最近frida检测越来越多,遇到的APP很多都是有检测的,之前很多APP在iOS端的时候检测手段很少,但是最近连iOS端的APP都存在检测frida无法绕过的情况了,于是想要先尝试自己编译出来一个fridaserver,至于怎么去特征就是之后的事情了。
需要用到的工具以及环境信息:
- MacOS
- [email protected]

0x01 编译frida

安装依赖

首先安装一些一定要使用到的依赖

brew install ninja mes

在此之后可以先尝试执行以下命令,如果可以找到iPhoneos的SDK的话就可以继续之后的步骤了

$ > xcrun --sdk iphoneos --show-sdk-path/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.4.sdk

如果没有的话就执行以下指令,然后重新查看iPhoneOS的SDK目录是否设置成功

$ > xcode-select --install$ > sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

之后新建一个文件夹,然后进入拉取frida代码

git clone https://github.com/frida/frida.git

这时候拉取代码之后需要先执行一下make指令来拉取一下submodule的代码,大概是这样子

iOS端frida源码编译

在拉取完成之后继续执行make的话就可以看到想要编译的目标类型,我们这里使用make core-ios

iOS端frida源码编译

这个时候如果直接编译的话会报证书错误,我们要自定义一个证书

自定义证书
打开钥匙串访问软件,在登录-所有项目中

iOS端frida源码编译

在证书助理->创建证书功能

iOS端frida源码编译

设置成以下内容,名称是frida-cert,证书类型是代码签名

iOS端frida源码编译

创建成功了之后就可以在所有项目中查看到刚才创建的证书了

iOS端frida源码编译

然后右键显示简介

iOS端frida源码编译

将证书勾选成始终信任,这里需要输入密码。

iOS端frida源码编译

完成之后证书图标会变出一个蓝色的+

iOS端frida源码编译

完成这一步之后在frida根目录下输入export IOS_CERTID=frida-cert,这样才可以不报错。

iOS端frida源码编译

编译代码

这里我想使用iOSServer就使用make core-ios来执行

iOS端frida源码编译

中间的过程中会出现codesign要输入密码来签名的步骤,之后稍等一段时间就可以完成编译。

最近看到这种输出的话就是编译成功了

iOS端frida源码编译

进入build/frida-ios-arm64/usr/bin目录下可以看到frida-server

iOS端frida源码编译

/usr/lib/frida目录下存在frida-agent.dylib

iOS端frida源码编译

运行frida

关注frida-server以及frida-agent.dylib两个文件,使用ssh连接到iPhone中,使用scp将这两个文件先放入手机

iOS端frida源码编译

手机中已经存在了这两个文件之后

iOS端frida源码编译

我们可以尝试将通过cydia/sileo下载的frida先卸载。这个时候就没有/usr/lib/frida这个目录了

iOS端frida源码编译

之后我们新建这个目录并将frida-agent.dylib放到下边

ChiChis:/var/mobile/Downloads root# mkdir /usr/lib/fridaChiChis:/var/mobile/Downloads root# mv frida-agent.dylib /usr/lib/frida/ChiChis:/var/mobile/Downloads root# ls -alh /usr/lib/fridatotal 19Mdrwxr-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了

iOS端frida源码编译

0x02 后记

其实没什么技术含量,真正难的是给frida去特征,原本我试了一次直接用patch去frida特征,手机直接死给我看,编译的过程也是比较坎坷的,期间遇到了如下三次失败
- iPhoneOS的SDK未设置成功导致编译失败
- 没有设置自签名导致编译失败
- frida-compile版本过低导致编译失败
后续慢慢研究怎么一点一点的去特征吧。

原文始发于微信公众号(ElysiumSec):iOS端frida源码编译

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月14日21:06:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   iOS端frida源码编译https://cn-sec.com/archives/2136162.html

发表评论

匿名网友 填写信息