首页
社区
课程
招聘
frida 自动重打包 deb 插件,frida-server 改名
发表于: 2024-6-24 09:57 4315

frida 自动重打包 deb 插件,frida-server 改名

2024-6-24 09:57
4315

Fridare

Fridare 是一个用于修改和定制 Frida(魔改) 服务器的工具,专为 iOS 越狱设备设计。它允许用户更改 Frida 服务器的名称和端口,以增强安全性和灵活性。免除了很多越狱检测frida的情况。

特性

  • 自动下载并修改指定版本的 Frida 服务器
  • 随机生成新的 Frida 服务器名称
  • 自定义 Frida 服务器端口
  • 支持 arm 和 arm64 架构
  • 生成可直接安装的修改版 .deb 包

前提条件

  • macOS 操作系统(用于运行构建脚本)
  • Homebrew
  • dpkg(将通过 Homebrew 自动安装,如果尚未安装)
  • 越狱的 iOS 设备
  • 在 iOS 设备上安装 OpenSSH

使用方法

  1. 克隆此仓库:
git clone  
cd fridare
  1. 运行构建脚本:
./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的代理地址,如果不需要代理,可以不传递。

  1. 脚本将下载指定版本的 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
-------------------------------------------------
  1. 将生成的 .deb 包传输到您的 iOS 设备:
scp ./dist/frida_16.3.3_iphoneos-arm_tcp.deb root@<iPhone-IP>:/var/root/
  1. 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



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (3)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
为什么刚开始会输出奇怪的日志,这样的:"stdout> objc[7900]: Class TXCVideoCaptureConfig is implemented in both /private/var/containers/B
stdout> undle/Application/1DA77AD8-7087-4AD8-92C9-651B10940D63/SYStudy.app/Frameworks/CCStreamLib.framework/CCStreamLib (0x1079dd048) and /private/var/containers/Bundle/Application/1DA77AD8-7087-4AD8-92C9-651B10940D63/SYStudy.app/思源心理 (0x10642fe08). One of
stdout>  the two will be used. Which one is undefined.

"
2024-7-11 11:24
0
雪    币: 469
活跃值: (386)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mb_nzzjxwdx 为什么刚开始会输出奇怪的日志,这样的:"stdout> objc[7900]: Class TXCVideoCaptureConfig is implemented in both / ...
没有patch过的frida挂上去有这个么?
2024-7-11 17:18
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
chinasf 没有patch过的frida挂上去有这个么?
正常版本frida没有这个
2024-7-18 16:46
0
游客
登录 | 注册 方可回帖
返回
//