Fridare
Fridare 是一个用于修改和定制 Frida(魔改) 服务器的工具,专为 iOS 越狱设备设计。它允许用户更改 Frida 服务器的名称和端口,以增强安全性和灵活性。免除了很多越狱检测frida的情况。
特性
自动下载并修改指定版本的 Frida 服务器 随机生成新的 Frida 服务器名称 自定义 Frida 服务器端口 支持 arm 和 arm64 架构 生成可直接安装的修改版 .deb 包 前提条件
macOS 操作系统(用于运行构建脚本) Homebrew dpkg(将通过 Homebrew 自动安装,如果尚未安装) 越狱的 iOS 设备 在 iOS 设备上安装 OpenSSH 使用方法
克隆此仓库: git clone
cd fridare 运行构建脚本: ./build.sh [FRIDA_VERSION] [FRIDA_SERVER_PORT] [CURL_PROXY] 例如:
./build.sh 16.3.3 8899 http://127.0.0.1:1081 如果不指定参数,脚本将使用默认值(Frida 版本 16.3.3,端口 8899)。 CURL_PROXY 为可以访问github的代理地址,如果不需要代理,可以不传递。
脚本将下载指定版本的 Frida,修改它,并在 dist
目录中生成新的 .deb 包。 $ ./build.sh 16.3.1 8888 http://127.0.0.1:1081
Frida 版本:16.3.1
Frida 端口:8888
dpkg 已安装
下载 frida_16.3.1_iphoneos-arm.deb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 17.1M 100 17.1M 0 0 1199k 0 0:00:14 0:00:14 --:--:-- 1247k
正在修改 Frida 16.3.1 版本 (arm)
正在修改 plist 文件: frida_16.3.1_iphoneos-arm/Library/LaunchDaemons/re.frida.server.plist
FRIDA_NAME: zdskj
FRIDA_SERVER_PORT: 8888
plist 文件修改完成
plist 文件已重命名为: frida_16.3.1_iphoneos-arm/Library/LaunchDaemons/re.zdskj.server.plist
Launch daemon 修改完成
正在修改 DEBIAN 文件夹中的文件: frida_16.3.1_iphoneos-arm/DEBIAN
FRIDA_NAME: zdskj
修改 control 文件
修改 extrainst_ 文件
修改 prerm 文件
DEBIAN 文件夹中的文件修改完成
DEBIAN 文件修改完成
正在修改二进制文件: frida_16.3.1_iphoneos-arm/usr/sbin/frida-server
替换完成: 0066726964612d6d61696e2d6c6f6f70 -> 007a64736b6a2d6d61696e2d6c6f6f70
替换完成: 0066726964615f7365727665725f6170 -> 007a64736b6a5f7365727665725f6170
替换完成: 0066726964615f7365727665725f6d61 -> 007a64736b6a5f7365727665725f6d61
替换完成: 0066726964612d7365727665722d6d61 -> 007a64736b6a2d7365727665722d6d61
替换完成: 00467269646100 -> 007a64736b6a0000
替换完成: 0066726964612d7365727665722d6d61696e2d6c6f -> 007a64736b6a2d7365727665722d6d61696e2d6c6f
替换完成: 0066726964612d6d61696e2d6c6f -> 007a64736b6a2d6d61696e2d6c6f
二进制文件修改完成
二进制文件修改完成
正在删除 frida_16.3.1_iphoneos-arm 中的 .DS_Store 文件...
.DS_Store 文件删除完成
dpkg-deb: 正在 'frida_16.3.1_iphoneos-arm_tcp.deb' 中构建软件包 're.zdskj.server'。
Frida 16.3.1 版本 (arm) 修改完成
新版本名:zdskj
请使用新版本名:zdskj 进行调试
请使用端口:8888 进行调试
新版本 deb 文件:../dist/frida_16.3.1_iphoneos-arm_tcp.deb
-------------------------------------------------
iPhone 安装:
scp dist/frida_16.3.1_iphoneos-arm_tcp.deb root@<iPhone-IP>:/var/root
ssh root@<iPhone-IP>dpkg -i /var/root/frida_16.3.1_iphoneos-arm_tcp.deb
PC 连接:
frida -U -f com.xxx.xxx -l
frida -H <iPhone-IP>:8888 -f com.xxx.xxx --no-pause
-------------------------------------------------
下载 frida_16.3.1_iphoneos-arm64.deb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 17.1M 100 17.1M 0 0 1207k 0 0:00:14 0:00:14 --:--:-- 1324k
正在修改 Frida 16.3.1 版本 (arm64)
正在修改 plist 文件: frida_16.3.1_iphoneos-arm64/var/jb/Library/LaunchDaemons/re.frida.server.plist
FRIDA_NAME: zdskj
FRIDA_SERVER_PORT: 8888
plist 文件修改完成
plist 文件已重命名为: frida_16.3.1_iphoneos-arm64/var/jb/Library/LaunchDaemons/re.zdskj.server.plist
Launch daemon 修改完成
正在修改 DEBIAN 文件夹中的文件: frida_16.3.1_iphoneos-arm64/DEBIAN
FRIDA_NAME: zdskj
修改 control 文件
修改 extrainst_ 文件
修改 prerm 文件
DEBIAN 文件夹中的文件修改完成
DEBIAN 文件修改完成
正在修改二进制文件: frida_16.3.1_iphoneos-arm64/var/jb/usr/sbin/frida-server
替换完成: 0066726964612d6d61696e2d6c6f6f70 -> 007a64736b6a2d6d61696e2d6c6f6f70
替换完成: 0066726964615f7365727665725f6170 -> 007a64736b6a5f7365727665725f6170
替换完成: 0066726964615f7365727665725f6d61 -> 007a64736b6a5f7365727665725f6d61
替换完成: 0066726964612d7365727665722d6d61 -> 007a64736b6a2d7365727665722d6d61
替换完成: 00467269646100 -> 007a64736b6a0000
替换完成: 0066726964612d7365727665722d6d61696e2d6c6f -> 007a64736b6a2d7365727665722d6d61696e2d6c6f
替换完成: 0066726964612d6d61696e2d6c6f -> 007a64736b6a2d6d61696e2d6c6f
二进制文件修改完成
二进制文件修改完成
正在删除 frida_16.3.1_iphoneos-arm64 中的 .DS_Store 文件...
.DS_Store 文件删除完成
dpkg-deb: 正在 'frida_16.3.1_iphoneos-arm64_tcp.deb' 中构建软件包 're.zdskj.server'。
Frida 16.3.1 版本 (arm64) 修改完成
新版本名:zdskj
请使用新版本名:zdskj 进行调试
请使用端口:8888 进行调试
新版本 deb 文件:../dist/frida_16.3.1_iphoneos-arm64_tcp.deb
-------------------------------------------------
iPhone 安装:
scp dist/frida_16.3.1_iphoneos-arm64_tcp.deb root@<iPhone-IP>:/var/root
ssh root@<iPhone-IP>dpkg -i /var/root/frida_16.3.1_iphoneos-arm64_tcp.deb
PC 连接:
frida -U -f com.xxx.xxx -l
frida -H <iPhone-IP>:8888 -f com.xxx.xxx --no-pause
------------------------------------------------- 将生成的 .deb 包传输到您的 iOS 设备: scp ./dist/frida_16.3.3_iphoneos-arm_tcp.deb root@<iPhone-IP>:/var/root/ SSH 进入您的 iOS 设备并安装修改后的包: ssh root@<iPhone-IP>dpkg -i /var/root/frida_16.3.3_iphoneos-arm_tcp.deb 安装兼容版本的 Frida 16.3.3 工具
为确保兼容性,请安装与修改后的服务器版本相匹配的 Frida 工具:
pip install frida-tools==12.4.3 对于 Node.js 用户:
npm install frida@16.3.3 使用
如果不使用usb数据线时,可以使用以下命令连接到远程 Frida 服务器:
frida -H <iPhone-IP>:8899 -U
frida-trace -H <iPhone-IP>:8899 ...
frida-ps -H <iPhone-IP>:8899
frida-inject -H <iPhone-IP>:8899 ... 原理
Fridare 项目的核心原理:
1. Frida 服务器修改原理
Fridare 的核心思想是修改 Frida 服务器,使其更难被检测。这主要通过以下几个方面实现:
重命名服务器文件: 将 frida-server
重命名为随机生成的名称(如 abcde
),这样可以避免简单的名称检测。
修改启动配置: 更新 LaunchDaemons plist 文件,使其使用新的服务器名称和自定义端口。这样可以改变服务器的启动方式和监听端口。
二进制文件修改: 使用二进制替换技术,将服务器二进制文件中的 "frida" 相关字符串替换为自定义字符串。这可以避免通过扫描二进制文件来检测 Frida。
2. deb 包修改和重打包
项目使用 dpkg-deb 工具解包和重新打包 deb 文件。这允许我们修改包的内容,包括:
更新 DEBIAN/control 文件中的包名 修改 DEBIAN/extrainst_ 和 DEBIAN/prerm 脚本以使用新的服务器名称 替换和重命名实际的服务器二进制文件 3. 自动化流程
build.sh 脚本自动化了整个过程:
下载指定版本的 Frida 服务器 生成随机名称 修改所有必要的文件 重新打包 deb 文件 4. 兼容性考虑
脚本同时处理 arm 和 arm64 架构的包,确保在不同的 iOS 设备上的兼容性。
5. 安全性增强
通过更改服务器名称、端口和内部字符串,这个项目使得通过常规方法检测 Frida 的存在变得更加困难。这对于在某些可能会主动检测和阻止 Frida 的应用中使用 Frida 非常有用。
6. 灵活性
通过允许用户指定 Frida 版本和端口,该工具提供了很大的灵活性,可以适应不同的需求和环境。
7. 二进制修改技术
使用 perl 来执行二进制替换,在不重新编译 Frida 的情况下修改二进制文件。这种方法虽然有效,但也有局限性,因为它只能替换固定长度的字符串。
注意事项
默认的 root 用户密码为 "alpine"。出于安全考虑,强烈建议更改此密码。 请确保您的 iOS 设备已越狱并安装了 OpenSSH。 此工具仅用于教育和研究目的。请遵守所有适用的法律和条款。 贡献
欢迎提交问题和拉取请求。对于重大更改,请先开issue讨论您想要更改的内容。
许可证
MIT
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)