强大的 Frida 重打包工具,用于 iOS 和 Android。轻松修改 Frida 特征,增强隐蔽性,绕过检测。简化逆向工程和安全测试。Powerful Frida repackaging tool for iOS and Android. Easily modify Frida servers to enhance stealth and bypass detection. Streamlines reverse engineering and security testing.
Go
930
114 commits
updated Sep 11, 2026
任何问题,请到仓库的 fridare issues 内提交,会进行反馈和修复bug,也推荐加QQ群,更好的沟通,但请先提交 issue ,作者再忙也会不定期一次性处理问题,更欢迎朋友们推送PR协同解决问题,感谢!☺️
Fridare 是面向 iOS / Android / Linux / Windows 的 Frida 自动化魔改工具:改名称、端口与协议面标识,降低常见环境检测命中率。提供 命令行 + 跨平台 GUI,并支持 静态补丁 与 Docker 源码重编译 双技术路线。
| 版本 | 要点 | 下载 |
|---|---|---|
| v4.0.8(当前 GUI) | 修 inject 资源改名 / ninja 花指令依赖 / 16.x snapshot;GUI 路径编过 16.7.19 与 17.17.1;不是免杀 | v4.0.8 |
| v4.0.7 | 源码页 stealth 开关(去符号/花指令/行为标记);静态魔改可去符号;不是免杀 | v4.0.7 |
| v4.0.6 | Docker toolchain-v4(MinGW + aarch64);监听端口用 -l | v4.0.6 |
| kxmwp-17.17.1(当前 Frida 产物) | 官方 17.17.0;linux-x86_64 GUI 路径 stealth 重编;不是免杀;端口用 -l | kxmwp-17.17.1 |
| kxmwp-16.7.19 | 官方 16.7.19 八平台 GUI 源码重编译(Android NDK r25)+ host wheels;不是免杀 | kxmwp-16.7.19 |
| kxmwp-17.17.0 | Frida 17.17.0 deep 产物(8 平台 server + host wheels) | kxmwp-17.17.0 |
| v4.0.5 | seed 脚本 Docker stage 修复;plan 扫描加速;README/CHANGELOG 精装;MinGW wrap 失败清理 | v4.0.5 |
| v4.0.4 | 双技术路线:默认 hex 静态魔改 + 可选 Docker 深度源码重编译;Windows MinGW server;服务端/客户端协议同步(re.{magic}. · /re/{magic}/ · {magic}:rpc);内置 AI Agent;OpenAI 端点探测;代理默认不走 | v4.0.4 |
| v4.0.3 | CLI 多平台静态链接(win/linux/darwin × amd64/arm64)+ Windows GUI 预编译 | v4.0.3 |
| v4.0.0 | Fyne GUI + Windows 原生 deb 魔改 | v4.0.0 |
文档:双技术路线 · v4.0.8 · 16 vs 17 · 16.7.19 · 17.17.1 · Windows · Android · iOS · frida-tools · 安装 · CHANGELOG
| 路线 | GUI | 依赖 | 速度 | 适用 |
|---|---|---|---|---|
| A · 静态补丁(默认) | frida 魔改 / frida-tools 魔改 / iOS DEB | 无 Docker | 秒级 | 日常改名、改端口、对齐 tools |
| B · 源码重编译(可选) | 源码重编译 · 一键深度定制 | 仅 Docker/Linux 内编译(Host 不装 Frida 工具链) | 小时级 | 深度隐藏、协议面同步、Windows MinGW server |
深度魔改(deep)要点:魔改名固定 5 位小写 a-z;server 与 host client wheel 必须成对(同一 magic);对象路径含 /re/{magic}/,避免只改 re.frida. 导致 UNKNOWN_METHOD。详细说明见 docs/dual-track.md。
+。17:frida_tools-14.10.4+frida.17.17.0.fridare.kxmwp-py3-none-any.whl。16:frida_tools-13.7.1+frida.16.7.19.fridare.kxmwp-py3-none-any.whl。请重新下载 kxmwp-16.7.19 的 host-wheels.zip(旧 zip 里 frida_tools-tools.frida.16.7.19… pip 拒装)。写成 14.10.4.frida. 也会报 Invalid wheel filename(#36)。16/17 的 tools 不能混用。kxmwp-server abort(backend_class != null):请用本 tag 重新下载 frida-kxmwp-17.17.1-android-arm64-server.zip。旧包 helper dex 仍是 re/frida,native 已是 re.kxmwp。frida-ps:undefined symbol: kxmwp_agent_main:请重新下载 kxmwp-16.7.19 的 android-arm64 zip。补丁只改 agent ELF 的 hash,并把 GumJS 全局改成 Kxmwp(不会把 Frida. 写回产物)。客户端必须 frida==16.7.19 魔改 wheel。Java.perform:frida CLI / frida-trace 自带 java-bridge。Python session.create_script 要自己处理 frida:load-bridge,否则 Java is not defined。native Interceptor 不受影响。用法见 docs/kxmwp-17.17.1.md。GUI:打开「源码重编译」→ 选 deep →「一键深度定制(①+② deep)」
Host:只跑 GUI / AI 改挂载源码 / docker 客户端
Docker:clone · configure · make(含 MinGW windows-x86_64)
产物:catalog/<ver>/<target>/<magic>/binaries/*-server.exe + python/host wheels + PROTOCOL-SYNC
.cmd / .bat 小坑)中文 Windows 里 cmd.exe 用的不是 UTF-8,而是系统代码页(常见 GBK/CP936)。所以:
.cmd / .bat 里请只用英文(ASCII) —— 写中文(哪怕文件是 UTF-8)容易乱码、if/goto 异常、脚本跑一半就挂。\r\n) —— 用 LF 存盘时,部分环境下批处理会解析失败。win/patch-frida.cmd、win/patch-frida-tools.cmd、ui/build.bat 都按上面规则写好了;GUI / PowerShell / Markdown 可以用中文,不受影响。powershell -File win\test_cmd_ascii.ps1更细的说明见 win/README.md。
欢迎大家入QQ群讨论:QQ 555354813 ,如本项目对你有所帮助,记得给作者加星鼓励哦!
| 能力 | 说明 |
|---|---|
| 双技术路线 | 静态 hex 补丁(默认)+ Docker 源码重编译(可选 deep) |
| 协议面同步 | re.{magic}. · /re/{magic}/ · {magic}:rpc · Frida.* API 面,server↔client 成对 |
| GUI(Fyne) | 下载 / 魔改 / tools / DEB / 源码重编译 / 设置;一键深度定制 |
| 内置 AI Agent | OpenAI 兼容端点;「测试端点连接」;端点默认不走 GUI 代理(可开) |
| Docker-only 编译 | Host 永不执行 configure/make;MinGW 交叉产出 Windows server |
| 多平台发布 | CLI 静态链接 6 架构;Windows GUI 预编译(Releases) |
| Windows deb | 本机解压/改包/重打包,无需 WSL |
| 魔改名契约 | 全链路 5 位小写 a-z(与 hexreplace 一致) |
.deb 打包;Conda / 多 Python 环境欢迎使用一键安装快速上手:
curl -s https://raw.githubusercontent.com/suifei/fridare/main/fridare.sh | bash -s install
x86_64-w64-mingw32 server 产物 + host wheel PROTOCOL-SYNC/workFridare 现在提供了基于 Fyne 框架的现代化图形用户界面,让 Frida 服务器的修改变得更加直观和便捷!
依赖:Go 1.21+;GUI 需要 CGO + 本机 C 编译器(Windows 上 MinGW/gcc 在 PATH)。CLI 工具可 CGO_ENABLED=0 纯静态构建。
Windows(推荐 PowerShell,无需 bash):
cd ui
.\build.ps1
# 或 .\build.bat
Linux / macOS:
cd ui
./build.sh
# 交叉编译 Windows GUI: ./build.sh windows # 仍需目标侧图形依赖,一般建议本机构建
产物(ui/build/):
| 文件 | 说明 |
|---|---|
fridare-gui.exe / fridare-gui | 主 GUI(Windows 为 -H windowsgui,无黑框控制台) |
fridare-create.exe / fridare-create | 创建 / 打包工具 |
fridare-patch.exe / fridare-patch | 补丁工具 |
.\build\fridare-gui.exe # Windows
./build/fridare-gui # Linux / macOS
预编译包请直接下 Releases(无需本地装 Go)。

v4.0.0版本的重大突破之一是在Windows平台下实现了对deb包的完全支持:
# 直接在Windows下修改iOS deb包
./fridare-gui.exe # 拖拽deb文件进行可视化修改
# 或使用命令行
./fridare-patch.exe -i frida-server.deb -o modified.deb
这项功能让Windows用户无需额外环境即可完成完整的Frida服务器定制工作流程!
patch-frida.cmd 脚本,用于在 Windows 环境下修改 frida-serverpatch-frida-tools.cmd 脚本,用于在 Windows 环境下修改 frida-toolspatch-tools 命令,用于修补 frida-tools 模块render_markdown 函数,用于在终端中渲染简单的 Markdown 格式generate_random_name 函数,用于生成随机的 Frida 魔改名move_file 函数,用于处理文件移动时的 "are identical" 错误list_frida_versions 函数,现在能够渲染 Markdown 格式的版本说明build_frida 函数,支持使用本地 deb 文件进行构建patch_frida_tools 和 restore_frida_tools 函数的功能和错误处理modify_frida_tools 函数,提高修改 frida-tools 的可靠性download_frida_module 函数,增加对特定操作系统和架构的支持show_main_usage 和其他使用说明函数,以反映新增的功能parse_arguments 函数,支持新增的 patch-tools 命令FRIDA_NAME 的支持macOS、iOS、Android、Linux 和 Windowsupgrade 命令:用于自动更新 Fridare 脚本upgrade 命令,用于自动更新 Fridare 脚本patch 命令,用于修补指定的 Frida 模块
安卓 frida-server ./fridare.sh p -m frida-server -latest -os android -arch arm64 -o ./patchedpatch 命令的帮助信息build、download 等命令的用法说明
fridare.sh 脚本,整合所有功能,提供更完整的命令行界面build, ls, download, lm, setup, config, 和 help 命令frida:rpc 特征魔改
core.py 文件进行魔改,对 _frida.abi3.so 文件进行魔改autoinstall.sh 脚本,实现 Frida 插件的自动部署。Makefile,简化项目的构建和部署流程。配置 issh 的 ssh 免密登陆
# 生成 keygen 密钥,如果已生成可以跳过
ssh-keygen -t rsa -b 4096 -C "<EMAIL>"
# 配置手机IP,如果USB连接可以不配置
issh ip set <iPhone-IP>
# 拷贝公钥到手机 /var/root ,需要 root 密码 alpine
issh scp ~/.ssh/id_rsa.pub
# 远程服务器添加公钥到 authorized_keys 文件
issh run "mkdir -p ~/.ssh && cat /var/root/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh"
fridare.sh - Frida 魔改脚本
│
├── 主要功能
│ ├── 构建魔改版 Frida (build)
│ │ ├── 支持指定版本或最新版本
│ │ ├── 自动生成随机5字符名称
│ │ ├── 自定义端口设置
│ │ └── 支持 arm 和 arm64 架构
│ ├── 列出可用 Frida 版本 (ls, list)
│ │ └── 从 GitHub API 获取版本信息
│ ├── 下载特定版本 Frida (download)
│ │ ├── 支持下载单个或所有模块
│ │ └── 可选的自动解压功能
│ ├── 列出可用 Frida 模块 (lm, list-modules)
│ ├── 检查并安装系统依赖 (setup)
│ │ ├── 自动检测缺失依赖
│ │ └── 使用包管理器安装依赖
│ └── 配置选项设置 (config)
│ ├── 设置 HTTP 代理
│ ├── 设置 Frida 服务器端口
│ └── 设置 Frida 魔改名称
│
├── 脚本结构
│ ├── 初始化配置 (initialize_config)
│ │ └── 读取和创建配置文件
│ ├── 参数解析 (parse_arguments)
│ │ └── 支持多种命令行选项
│ ├── 命令处理
│ │ ├── build: 构建魔改版 Frida
│ │ ├── patch: 修补指定的 Frida 模块
│ │ ├── setup: 设置环境
│ │ ├── config: 管理配置
│ │ ├── list: 列出版本
│ │ ├── download: 下载模块
│ │ └── list-modules: 列出模块
│ └── 主函数 (main)
│ └── 整合所有功能的入口点
│
├── 构建过程 (build_frida)
│ ├── 版本检查
│ │ └── 支持最新版本自动检测
│ ├── 环境准备
│ │ ├── 检查 Python 环境 (包括 Conda)
│ │ └── 检查 Golang 环境
│ ├── 下载 Frida (download_frida)
│ ├── 解包 deb 文件
│ ├── 修改文件
│ │ ├── 修改启动守护程序 (modify_launch_daemon)
│ │ │ └── 更新 plist 文件
│ │ ├── 修改 Debian 文件 (modify_debian_files)
│ │ │ ├── 更新 control 文件
│ │ │ ├── 更新 extrainst_ 文件
│ │ │ └── 更新 prerm 文件
│ │ └── 修改二进制文件 (modify_binary)
│ │ ├── 修改 frida-server
│ │ ├── 修改 frida-agent.dylib
│ │ └── 使用 hexreplace 工具
│ ├── 重新打包 deb 文件 (repackage_deb)
│ └── 修改 frida-tools (modify_frida_tools)
│ ├── 修改 Python 库文件
│ └── 更新 core.py 中的字符串
│
├── 辅助功能
│ ├── 日志输出 (log_info, log_success, log_warning, log_error)
│ │ └── 支持彩色输出
│ ├── 用户确认 (confirm_execution)
│ │ └── 可选的自动确认模式
│ ├── 依赖检查 (check_dependencies)
│ ├── 依赖安装 (install_dependencies)
│ ├── 配置管理 (set_config, unset_config, list_config)
│ └── Frida 版本和模块列表 (list_frida_versions, list_frida_modules)
│
├── 下载功能 (download_frida_module)
│ ├── 版本选择 (最新版或指定版本)
│ ├── 模块选择 (单个模块或全部模块)
│ ├── 下载过程
│ │ └── 支持 HTTP 代理
│ └── 解压处理
│ └── 可选的自动解压功能
│
└── 安全和权限
├── sudo 权限保持 (sudo_keep_alive)
└── 清理过程 (cleanup)
git clone https://github.com/suifei/fridare.git
cd fridare
./fridare.sh setup
此命令将检查并安装所需的依赖项。
./fridare.sh help
最快:直接下载 Releases 中的 Windows GUI 包,无需本机 Go。
本机构建(开发 / 魔改 GUI 源码时):
| 系统 | 依赖 | 命令 |
|---|---|---|
| Windows | Go 1.21+、MinGW gcc 在 PATH(如 C:\msys64\mingw64\bin) | cd ui → .\build.ps1 |
| Linux / macOS | Go + CGO 图形依赖 | cd ui → ./build.sh |
# Windows 示例:把 MSYS2 MinGW 放进当前会话 PATH 后构建
$env:Path = "C:\msys64\mingw64\bin;" + $env:Path
cd ui
.\build.ps1
.\build\fridare-gui.exe
Fridare 提供了多个命令来满足不同的需求:
build: 重新打包 Fridals 或 list: 列出可用的 Frida 版本download: 下载特定版本的 Fridalm 或 list-modules: 列出可用的 Frida 模块setup: 检查并安装系统依赖config: 设置配置选项help: 显示帮助信息./fridare.sh build -v 16.0.19 -p 8899 -y
这个命令会构建版本 16.0.19 的 Frida,设置端口为 8899,并自动确认所有提示。
./fridare.sh ls
./fridare.sh download -v 16.0.19 -m frida-server ./output
这个命令会下载版本 16.0.19 的 frida-server 模块到 ./output 目录。
./fridare.sh download -latest -all ./output
./fridare.sh lm
./fridare.sh setup
这个命令会检查并安装所需的系统依赖。
./fridare.sh config set proxy http://127.0.0.1:7890
./fridare.sh config set port 9999
./fridare.sh config set frida-name abcde
这些命令分别设置代理、端口和 Frida 魔改名。
./fridare.sh config ls
./fridare.sh help build
这个命令会显示 build 命令的详细用法。
./fridare.sh build -latest -p 9999 -y
这个命令会使用最新版本的 Frida 进行构建,设置端口为 9999,并自动确认所有提示。
./fridare.sh download -latest -m frida-gadget --no-extract ./output
这个命令会下载最新版本的 frida-gadget 模块到 ./output 目录,但不会自动解压。
./fridare.sh config frida-tools
这个命令会安装或更新 frida-tools。
scp ./dist/frida_16.3.3_iphoneos-arm_tcp.deb root@<iPhone-IP>:/var/root/
ssh root@<iPhone-IP>
dpkg -i /var/root/frida_16.3.3_iphoneos-arm_tcp.deb
这些示例涵盖了脚本的主要功能和常见使用场景。可帮助您快速上手使用。
为确保兼容性,请安装与修改后的服务器版本相匹配的 Frida 工具:
pip install frida-tools==12.4.3
对于 Node.js 用户:
npm install frida@16.3.3
如果您的设备通过 USB 访问,您可以使用以下命令连接到本地 frida-server:
frida -U -f <target-process>
如果不使用usb数据线时,可以使用以下命令连接到远程 frida-server :
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 项目的核心原理:
Fridare 的核心思想是修改 frida-server ,使其更难被检测。这主要通过以下几个方面实现:
重命名服务器文件:
将 frida-server 重命名为随机生成的名称(如 abcde),这样可以避免简单的名称检测。
修改启动配置: 更新 LaunchDaemons plist 文件,使其使用新的服务器名称和自定义端口。这样可以改变服务器的启动方式和监听端口。
二进制文件修改: 使用二进制替换技术,将服务器二进制文件中的 "frida" 相关字符串替换为自定义字符串。这可以避免通过扫描二进制文件来检测 Frida。
项目使用 dpkg-deb 工具解包和重新打包 deb 文件。这允许我们修改包的内容,包括:
fridare.sh 脚本自动化了整个过程:
脚本同时处理 arm 和 arm64 架构的包,确保在不同的 iOS 设备上的兼容性。
通过更改服务器名称、端口和内部字符串,这个项目使得通过常规方法检测 Frida 的存在变得更加困难。这对于在某些可能会主动检测和阻止 Frida 的应用中使用 Frida 非常有用。
通过允许用户指定 Frida 版本和端口,该工具提供了很大的灵活性,可以适应不同的需求和环境。
使用 hexreplace 来执行二进制替换,在不重新编译 Frida 的情况下修改二进制文件。这种方法虽然有效,但也有局限性,因为它只能替换固定长度的字符串。
欢迎提交问题和拉取请求。对于重大更改,请先开issue讨论您想要更改的内容。
Fridare automates Frida customization on iOS / Android / Linux / Windows: rename binaries, change ports, and align protocol fingerprints. Ships CLI + cross-platform GUI, with two tracks:
| Track | What | Needs |
|---|---|---|
| A · Static patch (default) | hex/string replace on official binaries + tools | No Docker |
| B · Source rebuild (optional) | AI/host edits + Docker-only configure/make (incl. MinGW Windows server) | Docker |
v4.0.8: GUI-path rebuild for official 16.7.19 and product-label 17.17.1; inject rename / ninja ARGS-only junk / 16.x snapshot disable. Not AV evasion. See docs/release-v4.0.8.md.
CHANGELOG · Chinese docs above · Windows notes
cd ui && ./build.sh or .\build.ps1 (CGO for GUI)patch-tools command for modifying the frida-tools modulerender_markdown function to display simple Markdown formatting in the terminalgenerate_random_name function to create random Frida modification namesmove_file function to handle "are identical" errors during file moveslist_frida_versions function to render Markdown-formatted version descriptionsbuild_frida function to support building from local deb filespatch_frida_tools and restore_frida_tools functionsmodify_frida_tools function for more reliable frida-tools modificationsdownload_frida_module function with support for specific OS and architectureshow_main_usage and other usage instruction functions to reflect new featuresparse_arguments function to accommodate the new patch-tools commandFRIDA_NAMEfridare.sh script, integrating all functionalities and providing a more complete command-line interfacebuild, ls, download, lm, setup, config, and help commandsfrida:rpc feature modification
core.py file, and modifies the _frida.abi3.so fileautoinstall.sh script for automatic deployment of Frida plugins.Makefile to simplify the project build and deployment process.Configure password-free SSH login for issh
# Generate keygen, skip if already generated
ssh-keygen -t rsa -b 4096 -C "<EMAIL>"
# Configure iPhone IP, can be skipped if using USB connection
issh ip set <iPhone-IP>
# Copy public key to /var/root on the phone, requires root password alpine
issh scp ~/.ssh/id_rsa.pub
# Add public key to authorized_keys file on remote server
issh run "mkdir -p ~/.ssh && cat /var/root/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh"
fridare.sh - Frida Modification Script
│
├── Main Functions
│ ├── Build Modified Frida (build)
│ │ ├── Support for specified version or latest version
│ │ ├── Auto-generate random 5-character name
│ │ ├── Custom port setting
│ │ └── Support for arm and arm64 architectures
│ ├── List Available Frida Versions (ls, list)
│ │ └── Fetch version info from GitHub API
│ ├── Download Specific Frida Version (download)
│ │ ├── Support for downloading single or all modules
│ │ └── Optional auto-extraction feature
│ ├── List Available Frida Modules (lm, list-modules)
│ ├── Check and Install System Dependencies (setup)
│ │ ├── Auto-detect missing dependencies
│ │ └── Install dependencies using package manager
│ └── Configure Options (config)
│ ├── Set HTTP proxy
│ ├── Set Frida server port
│ └── Set Frida modification name
│
├── Script Structure
│ ├── Initialize Configuration (initialize_config)
│ │ └── Read and create configuration file
│ ├── Parse Arguments (parse_arguments)
│ │ └── Support various command-line options
│ ├── Command Processing
│ │ ├── build: Build modified Frida
│ │ ├── setup: Set up environment
│ │ ├── config: Manage configuration
│ │ ├── list: List versions
│ │ ├── download: Download modules
│ │ └── list-modules: List modules
│ └── Main Function (main)
│ └── Entry point integrating all functionalities
│
├── Build Process (build_frida)
│ ├── Version Check
│ │ └── Support for latest version auto-detection
│ ├── Environment Preparation
│ │ ├── Check Python environment (including Conda)
│ │ └── Check Golang environment
│ ├── Download Frida (download_frida)
│ ├── Unpack deb File
│ ├── Modify Files
│ │ ├── Modify Launch Daemon (modify_launch_daemon)
│ │ │ └── Update plist file
│ │ ├── Modify Debian Files (modify_debian_files)
│ │ │ ├── Update control file
│ │ │ ├── Update extrainst_ file
│ │ │ └── Update prerm file
│ │ └── Modify Binary Files (modify_binary)
│ │ ├── Modify frida-server
│ │ ├── Modify frida-agent.dylib
│ │ └── Use hexreplace tool
│ ├── Repackage deb File (repackage_deb)
│ └── Modify frida-tools (modify_frida_tools)
│ ├── Modify Python library files
│ └── Update strings in core.py
│
├── Auxiliary Functions
│ ├── Log Output (log_info, log_success, log_warning, log_error)
│ │ └── Support for colored output
│ ├── User Confirmation (confirm_execution)
│ │ └── Optional auto-confirm mode
│ ├── Dependency Check (check_dependencies)
│ ├── Dependency Installation (install_dependencies)
│ ├── Configuration Management (set_config, unset_config, list_config)
│ └── Frida Version and Module Lists (list_frida_versions, list_frida_modules)
│
├── Download Functionality (download_frida_module)
│ ├── Version Selection (latest or specified version)
│ ├── Module Selection (single module or all modules)
│ ├── Download Process
│ │ └── Support for HTTP proxy
│ └── Extraction Processing
│ └── Optional auto-extraction feature
│
└── Security and Permissions
├── Maintain sudo Privileges (sudo_keep_alive)
└── Cleanup Process (cleanup)
git clone https://github.com/suifei/fridare.git
cd fridare
./fridare.sh setup
This command will check and install the required dependencies.
./fridare.sh help
Fridare provides multiple commands to meet different needs:
build: Repackage Fridals or list: List available Frida versionsdownload: Download a specific version of Fridalm or list-modules: List available Frida modulessetup: Check and install system dependenciesconfig: Set configuration optionshelp: Display help information./fridare.sh build -v 16.0.19 -p 8899 -y
This command will build Frida version 16.0.19, set the port to 8899, and automatically confirm all prompts.
./fridare.sh ls
./fridare.sh download -v 16.0.19 -m frida-server ./output
This command will download the frida-server module of version 16.0.19 to the ./output directory.
./fridare.sh download -latest -all ./output
./fridare.sh lm
./fridare.sh setup
This command will check and install the required system dependencies.
./fridare.sh config set proxy http://127.0.0.1:7890
./fridare.sh config set port 9999
./fridare.sh config set frida-name abcde
These commands set the proxy, port, and Frida modification name respectively.
./fridare.sh config ls
./fridare.sh help build
This command will display detailed usage for the build command.
./fridare.sh build -latest -p 9999 -y
This command will build using the latest version of Frida, set the port to 9999, and automatically confirm all prompts.
./fridare.sh download -latest -m frida-gadget --no-extract ./output
This command will download the latest version of the frida-gadget module to the ./output directory but won't automatically extract it.
./fridare.sh config frida-tools
This command will install or update frida-tools.
scp ./dist/frida_16.3.3_iphoneos-arm_tcp.deb root@<iPhone-IP>:/var/root/
ssh root@<iPhone-IP>
dpkg -i /var/root/frida_16.3.3_iphoneos-arm_tcp.deb
These examples cover the main functionalities and common usage scenarios of the script. They can help you quickly get started with using it.
To ensure compatibility, please install Frida tools that match the modified server version:
pip install frida-tools==12.4.3
For Node.js users:
npm install frida@16.3.3
If your device is accessed via USB, you can use the following command to connect to the local frida-server:
frida -U -f <target-process>
If not using a USB data cable, you can use the following commands to connect to the remote frida-server:
frida -H <iPhone-IP>:8899 -U
frida-trace -H <iPhone-IP>:8899 ...
frida-ps -H <iPhone-IP>:8899
frida-inject -H <iPhone-IP>:8899 ...
Core principles of the Fridare project:
The core idea of Fridare is to modify frida-server to make it harder to detect. This is mainly achieved through the following aspects:
Renaming the server file:
Rename frida-server to a randomly generated name (e.g., abcde), which avoids simple name detection.
Modifying startup configuration: Update the LaunchDaemons plist file to use the new server name and custom port. This changes the way the server starts and the port it listens on.
Binary file modification: Use binary replacement techniques to replace "frida" related strings in the server binary file with custom strings. This can avoid detection of Frida by scanning the binary file.
The project uses the dpkg-deb tool to unpack and repack deb files. This allows us to modify the contents of the package, including:
The fridare.sh script automates the entire process:
The script handles packages for both arm and arm64 architectures, ensuring compatibility on different iOS devices.
By changing the server name, port, and internal strings, this project makes it more difficult to detect the presence of Frida through conventional methods. This is particularly useful for using Frida in applications that might actively detect and block Frida.
By allowing users to specify the Frida version and port, the tool provides great flexibility to adapt to different needs and environments.
Using hexreplace to perform binary replacements, modifying binary files without recompiling Frida. While effective, this method has limitations as it can only replace fixed-length strings.
Issues and pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Go
88.1%
Shell
9.0%
PowerShell
1.6%
强大的 Frida 重打包工具,用于 iOS 和 Android。轻松修改 Frida 特征,增强隐蔽性,绕过检测。简化逆向工程和安全测试。Powerful Frida repackaging tool for iOS and Android. Easily modify Frida servers to enhance stealth and bypass detection. Streamlines reverse engineering and security testing.
Go
930
114 commits
updated Sep 11, 2026
任何问题,请到仓库的 fridare issues 内提交,会进行反馈和修复bug,也推荐加QQ群,更好的沟通,但请先提交 issue ,作者再忙也会不定期一次性处理问题,更欢迎朋友们推送PR协同解决问题,感谢!☺️
Fridare 是面向 iOS / Android / Linux / Windows 的 Frida 自动化魔改工具:改名称、端口与协议面标识,降低常见环境检测命中率。提供 命令行 + 跨平台 GUI,并支持 静态补丁 与 Docker 源码重编译 双技术路线。
| 版本 | 要点 | 下载 |
|---|---|---|
| v4.0.8(当前 GUI) | 修 inject 资源改名 / ninja 花指令依赖 / 16.x snapshot;GUI 路径编过 16.7.19 与 17.17.1;不是免杀 | v4.0.8 |
| v4.0.7 | 源码页 stealth 开关(去符号/花指令/行为标记);静态魔改可去符号;不是免杀 | v4.0.7 |
| v4.0.6 | Docker toolchain-v4(MinGW + aarch64);监听端口用 -l | v4.0.6 |
| kxmwp-17.17.1(当前 Frida 产物) | 官方 17.17.0;linux-x86_64 GUI 路径 stealth 重编;不是免杀;端口用 -l | kxmwp-17.17.1 |
| kxmwp-16.7.19 | 官方 16.7.19 八平台 GUI 源码重编译(Android NDK r25)+ host wheels;不是免杀 | kxmwp-16.7.19 |
| kxmwp-17.17.0 | Frida 17.17.0 deep 产物(8 平台 server + host wheels) | kxmwp-17.17.0 |
| v4.0.5 | seed 脚本 Docker stage 修复;plan 扫描加速;README/CHANGELOG 精装;MinGW wrap 失败清理 | v4.0.5 |
| v4.0.4 | 双技术路线:默认 hex 静态魔改 + 可选 Docker 深度源码重编译;Windows MinGW server;服务端/客户端协议同步(re.{magic}. · /re/{magic}/ · {magic}:rpc);内置 AI Agent;OpenAI 端点探测;代理默认不走 | v4.0.4 |
| v4.0.3 | CLI 多平台静态链接(win/linux/darwin × amd64/arm64)+ Windows GUI 预编译 | v4.0.3 |
| v4.0.0 | Fyne GUI + Windows 原生 deb 魔改 | v4.0.0 |
文档:双技术路线 · v4.0.8 · 16 vs 17 · 16.7.19 · 17.17.1 · Windows · Android · iOS · frida-tools · 安装 · CHANGELOG
| 路线 | GUI | 依赖 | 速度 | 适用 |
|---|---|---|---|---|
| A · 静态补丁(默认) | frida 魔改 / frida-tools 魔改 / iOS DEB | 无 Docker | 秒级 | 日常改名、改端口、对齐 tools |
| B · 源码重编译(可选) | 源码重编译 · 一键深度定制 | 仅 Docker/Linux 内编译(Host 不装 Frida 工具链) | 小时级 | 深度隐藏、协议面同步、Windows MinGW server |
深度魔改(deep)要点:魔改名固定 5 位小写 a-z;server 与 host client wheel 必须成对(同一 magic);对象路径含 /re/{magic}/,避免只改 re.frida. 导致 UNKNOWN_METHOD。详细说明见 docs/dual-track.md。
+。17:frida_tools-14.10.4+frida.17.17.0.fridare.kxmwp-py3-none-any.whl。16:frida_tools-13.7.1+frida.16.7.19.fridare.kxmwp-py3-none-any.whl。请重新下载 kxmwp-16.7.19 的 host-wheels.zip(旧 zip 里 frida_tools-tools.frida.16.7.19… pip 拒装)。写成 14.10.4.frida. 也会报 Invalid wheel filename(#36)。16/17 的 tools 不能混用。kxmwp-server abort(backend_class != null):请用本 tag 重新下载 frida-kxmwp-17.17.1-android-arm64-server.zip。旧包 helper dex 仍是 re/frida,native 已是 re.kxmwp。frida-ps:undefined symbol: kxmwp_agent_main:请重新下载 kxmwp-16.7.19 的 android-arm64 zip。补丁只改 agent ELF 的 hash,并把 GumJS 全局改成 Kxmwp(不会把 Frida. 写回产物)。客户端必须 frida==16.7.19 魔改 wheel。Java.perform:frida CLI / frida-trace 自带 java-bridge。Python session.create_script 要自己处理 frida:load-bridge,否则 Java is not defined。native Interceptor 不受影响。用法见 docs/kxmwp-17.17.1.md。GUI:打开「源码重编译」→ 选 deep →「一键深度定制(①+② deep)」
Host:只跑 GUI / AI 改挂载源码 / docker 客户端
Docker:clone · configure · make(含 MinGW windows-x86_64)
产物:catalog/<ver>/<target>/<magic>/binaries/*-server.exe + python/host wheels + PROTOCOL-SYNC
.cmd / .bat 小坑)中文 Windows 里 cmd.exe 用的不是 UTF-8,而是系统代码页(常见 GBK/CP936)。所以:
.cmd / .bat 里请只用英文(ASCII) —— 写中文(哪怕文件是 UTF-8)容易乱码、if/goto 异常、脚本跑一半就挂。\r\n) —— 用 LF 存盘时,部分环境下批处理会解析失败。win/patch-frida.cmd、win/patch-frida-tools.cmd、ui/build.bat 都按上面规则写好了;GUI / PowerShell / Markdown 可以用中文,不受影响。powershell -File win\test_cmd_ascii.ps1更细的说明见 win/README.md。
欢迎大家入QQ群讨论:QQ 555354813 ,如本项目对你有所帮助,记得给作者加星鼓励哦!
| 能力 | 说明 |
|---|---|
| 双技术路线 | 静态 hex 补丁(默认)+ Docker 源码重编译(可选 deep) |
| 协议面同步 | re.{magic}. · /re/{magic}/ · {magic}:rpc · Frida.* API 面,server↔client 成对 |
| GUI(Fyne) | 下载 / 魔改 / tools / DEB / 源码重编译 / 设置;一键深度定制 |
| 内置 AI Agent | OpenAI 兼容端点;「测试端点连接」;端点默认不走 GUI 代理(可开) |
| Docker-only 编译 | Host 永不执行 configure/make;MinGW 交叉产出 Windows server |
| 多平台发布 | CLI 静态链接 6 架构;Windows GUI 预编译(Releases) |
| Windows deb | 本机解压/改包/重打包,无需 WSL |
| 魔改名契约 | 全链路 5 位小写 a-z(与 hexreplace 一致) |
.deb 打包;Conda / 多 Python 环境欢迎使用一键安装快速上手:
curl -s https://raw.githubusercontent.com/suifei/fridare/main/fridare.sh | bash -s install
x86_64-w64-mingw32 server 产物 + host wheel PROTOCOL-SYNC/workFridare 现在提供了基于 Fyne 框架的现代化图形用户界面,让 Frida 服务器的修改变得更加直观和便捷!
依赖:Go 1.21+;GUI 需要 CGO + 本机 C 编译器(Windows 上 MinGW/gcc 在 PATH)。CLI 工具可 CGO_ENABLED=0 纯静态构建。
Windows(推荐 PowerShell,无需 bash):
cd ui
.\build.ps1
# 或 .\build.bat
Linux / macOS:
cd ui
./build.sh
# 交叉编译 Windows GUI: ./build.sh windows # 仍需目标侧图形依赖,一般建议本机构建
产物(ui/build/):
| 文件 | 说明 |
|---|---|
fridare-gui.exe / fridare-gui | 主 GUI(Windows 为 -H windowsgui,无黑框控制台) |
fridare-create.exe / fridare-create | 创建 / 打包工具 |
fridare-patch.exe / fridare-patch | 补丁工具 |
.\build\fridare-gui.exe # Windows
./build/fridare-gui # Linux / macOS
预编译包请直接下 Releases(无需本地装 Go)。

v4.0.0版本的重大突破之一是在Windows平台下实现了对deb包的完全支持:
# 直接在Windows下修改iOS deb包
./fridare-gui.exe # 拖拽deb文件进行可视化修改
# 或使用命令行
./fridare-patch.exe -i frida-server.deb -o modified.deb
这项功能让Windows用户无需额外环境即可完成完整的Frida服务器定制工作流程!
patch-frida.cmd 脚本,用于在 Windows 环境下修改 frida-serverpatch-frida-tools.cmd 脚本,用于在 Windows 环境下修改 frida-toolspatch-tools 命令,用于修补 frida-tools 模块render_markdown 函数,用于在终端中渲染简单的 Markdown 格式generate_random_name 函数,用于生成随机的 Frida 魔改名move_file 函数,用于处理文件移动时的 "are identical" 错误list_frida_versions 函数,现在能够渲染 Markdown 格式的版本说明build_frida 函数,支持使用本地 deb 文件进行构建patch_frida_tools 和 restore_frida_tools 函数的功能和错误处理modify_frida_tools 函数,提高修改 frida-tools 的可靠性download_frida_module 函数,增加对特定操作系统和架构的支持show_main_usage 和其他使用说明函数,以反映新增的功能parse_arguments 函数,支持新增的 patch-tools 命令FRIDA_NAME 的支持macOS、iOS、Android、Linux 和 Windowsupgrade 命令:用于自动更新 Fridare 脚本upgrade 命令,用于自动更新 Fridare 脚本patch 命令,用于修补指定的 Frida 模块
安卓 frida-server ./fridare.sh p -m frida-server -latest -os android -arch arm64 -o ./patchedpatch 命令的帮助信息build、download 等命令的用法说明
fridare.sh 脚本,整合所有功能,提供更完整的命令行界面build, ls, download, lm, setup, config, 和 help 命令frida:rpc 特征魔改
core.py 文件进行魔改,对 _frida.abi3.so 文件进行魔改autoinstall.sh 脚本,实现 Frida 插件的自动部署。Makefile,简化项目的构建和部署流程。配置 issh 的 ssh 免密登陆
# 生成 keygen 密钥,如果已生成可以跳过
ssh-keygen -t rsa -b 4096 -C "<EMAIL>"
# 配置手机IP,如果USB连接可以不配置
issh ip set <iPhone-IP>
# 拷贝公钥到手机 /var/root ,需要 root 密码 alpine
issh scp ~/.ssh/id_rsa.pub
# 远程服务器添加公钥到 authorized_keys 文件
issh run "mkdir -p ~/.ssh && cat /var/root/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh"
fridare.sh - Frida 魔改脚本
│
├── 主要功能
│ ├── 构建魔改版 Frida (build)
│ │ ├── 支持指定版本或最新版本
│ │ ├── 自动生成随机5字符名称
│ │ ├── 自定义端口设置
│ │ └── 支持 arm 和 arm64 架构
│ ├── 列出可用 Frida 版本 (ls, list)
│ │ └── 从 GitHub API 获取版本信息
│ ├── 下载特定版本 Frida (download)
│ │ ├── 支持下载单个或所有模块
│ │ └── 可选的自动解压功能
│ ├── 列出可用 Frida 模块 (lm, list-modules)
│ ├── 检查并安装系统依赖 (setup)
│ │ ├── 自动检测缺失依赖
│ │ └── 使用包管理器安装依赖
│ └── 配置选项设置 (config)
│ ├── 设置 HTTP 代理
│ ├── 设置 Frida 服务器端口
│ └── 设置 Frida 魔改名称
│
├── 脚本结构
│ ├── 初始化配置 (initialize_config)
│ │ └── 读取和创建配置文件
│ ├── 参数解析 (parse_arguments)
│ │ └── 支持多种命令行选项
│ ├── 命令处理
│ │ ├── build: 构建魔改版 Frida
│ │ ├── patch: 修补指定的 Frida 模块
│ │ ├── setup: 设置环境
│ │ ├── config: 管理配置
│ │ ├── list: 列出版本
│ │ ├── download: 下载模块
│ │ └── list-modules: 列出模块
│ └── 主函数 (main)
│ └── 整合所有功能的入口点
│
├── 构建过程 (build_frida)
│ ├── 版本检查
│ │ └── 支持最新版本自动检测
│ ├── 环境准备
│ │ ├── 检查 Python 环境 (包括 Conda)
│ │ └── 检查 Golang 环境
│ ├── 下载 Frida (download_frida)
│ ├── 解包 deb 文件
│ ├── 修改文件
│ │ ├── 修改启动守护程序 (modify_launch_daemon)
│ │ │ └── 更新 plist 文件
│ │ ├── 修改 Debian 文件 (modify_debian_files)
│ │ │ ├── 更新 control 文件
│ │ │ ├── 更新 extrainst_ 文件
│ │ │ └── 更新 prerm 文件
│ │ └── 修改二进制文件 (modify_binary)
│ │ ├── 修改 frida-server
│ │ ├── 修改 frida-agent.dylib
│ │ └── 使用 hexreplace 工具
│ ├── 重新打包 deb 文件 (repackage_deb)
│ └── 修改 frida-tools (modify_frida_tools)
│ ├── 修改 Python 库文件
│ └── 更新 core.py 中的字符串
│
├── 辅助功能
│ ├── 日志输出 (log_info, log_success, log_warning, log_error)
│ │ └── 支持彩色输出
│ ├── 用户确认 (confirm_execution)
│ │ └── 可选的自动确认模式
│ ├── 依赖检查 (check_dependencies)
│ ├── 依赖安装 (install_dependencies)
│ ├── 配置管理 (set_config, unset_config, list_config)
│ └── Frida 版本和模块列表 (list_frida_versions, list_frida_modules)
│
├── 下载功能 (download_frida_module)
│ ├── 版本选择 (最新版或指定版本)
│ ├── 模块选择 (单个模块或全部模块)
│ ├── 下载过程
│ │ └── 支持 HTTP 代理
│ └── 解压处理
│ └── 可选的自动解压功能
│
└── 安全和权限
├── sudo 权限保持 (sudo_keep_alive)
└── 清理过程 (cleanup)
git clone https://github.com/suifei/fridare.git
cd fridare
./fridare.sh setup
此命令将检查并安装所需的依赖项。
./fridare.sh help
最快:直接下载 Releases 中的 Windows GUI 包,无需本机 Go。
本机构建(开发 / 魔改 GUI 源码时):
| 系统 | 依赖 | 命令 |
|---|---|---|
| Windows | Go 1.21+、MinGW gcc 在 PATH(如 C:\msys64\mingw64\bin) | cd ui → .\build.ps1 |
| Linux / macOS | Go + CGO 图形依赖 | cd ui → ./build.sh |
# Windows 示例:把 MSYS2 MinGW 放进当前会话 PATH 后构建
$env:Path = "C:\msys64\mingw64\bin;" + $env:Path
cd ui
.\build.ps1
.\build\fridare-gui.exe
Fridare 提供了多个命令来满足不同的需求:
build: 重新打包 Fridals 或 list: 列出可用的 Frida 版本download: 下载特定版本的 Fridalm 或 list-modules: 列出可用的 Frida 模块setup: 检查并安装系统依赖config: 设置配置选项help: 显示帮助信息./fridare.sh build -v 16.0.19 -p 8899 -y
这个命令会构建版本 16.0.19 的 Frida,设置端口为 8899,并自动确认所有提示。
./fridare.sh ls
./fridare.sh download -v 16.0.19 -m frida-server ./output
这个命令会下载版本 16.0.19 的 frida-server 模块到 ./output 目录。
./fridare.sh download -latest -all ./output
./fridare.sh lm
./fridare.sh setup
这个命令会检查并安装所需的系统依赖。
./fridare.sh config set proxy http://127.0.0.1:7890
./fridare.sh config set port 9999
./fridare.sh config set frida-name abcde
这些命令分别设置代理、端口和 Frida 魔改名。
./fridare.sh config ls
./fridare.sh help build
这个命令会显示 build 命令的详细用法。
./fridare.sh build -latest -p 9999 -y
这个命令会使用最新版本的 Frida 进行构建,设置端口为 9999,并自动确认所有提示。
./fridare.sh download -latest -m frida-gadget --no-extract ./output
这个命令会下载最新版本的 frida-gadget 模块到 ./output 目录,但不会自动解压。
./fridare.sh config frida-tools
这个命令会安装或更新 frida-tools。
scp ./dist/frida_16.3.3_iphoneos-arm_tcp.deb root@<iPhone-IP>:/var/root/
ssh root@<iPhone-IP>
dpkg -i /var/root/frida_16.3.3_iphoneos-arm_tcp.deb
这些示例涵盖了脚本的主要功能和常见使用场景。可帮助您快速上手使用。
为确保兼容性,请安装与修改后的服务器版本相匹配的 Frida 工具:
pip install frida-tools==12.4.3
对于 Node.js 用户:
npm install frida@16.3.3
如果您的设备通过 USB 访问,您可以使用以下命令连接到本地 frida-server:
frida -U -f <target-process>
如果不使用usb数据线时,可以使用以下命令连接到远程 frida-server :
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 项目的核心原理:
Fridare 的核心思想是修改 frida-server ,使其更难被检测。这主要通过以下几个方面实现:
重命名服务器文件:
将 frida-server 重命名为随机生成的名称(如 abcde),这样可以避免简单的名称检测。
修改启动配置: 更新 LaunchDaemons plist 文件,使其使用新的服务器名称和自定义端口。这样可以改变服务器的启动方式和监听端口。
二进制文件修改: 使用二进制替换技术,将服务器二进制文件中的 "frida" 相关字符串替换为自定义字符串。这可以避免通过扫描二进制文件来检测 Frida。
项目使用 dpkg-deb 工具解包和重新打包 deb 文件。这允许我们修改包的内容,包括:
fridare.sh 脚本自动化了整个过程:
脚本同时处理 arm 和 arm64 架构的包,确保在不同的 iOS 设备上的兼容性。
通过更改服务器名称、端口和内部字符串,这个项目使得通过常规方法检测 Frida 的存在变得更加困难。这对于在某些可能会主动检测和阻止 Frida 的应用中使用 Frida 非常有用。
通过允许用户指定 Frida 版本和端口,该工具提供了很大的灵活性,可以适应不同的需求和环境。
使用 hexreplace 来执行二进制替换,在不重新编译 Frida 的情况下修改二进制文件。这种方法虽然有效,但也有局限性,因为它只能替换固定长度的字符串。
欢迎提交问题和拉取请求。对于重大更改,请先开issue讨论您想要更改的内容。
Fridare automates Frida customization on iOS / Android / Linux / Windows: rename binaries, change ports, and align protocol fingerprints. Ships CLI + cross-platform GUI, with two tracks:
| Track | What | Needs |
|---|---|---|
| A · Static patch (default) | hex/string replace on official binaries + tools | No Docker |
| B · Source rebuild (optional) | AI/host edits + Docker-only configure/make (incl. MinGW Windows server) | Docker |
v4.0.8: GUI-path rebuild for official 16.7.19 and product-label 17.17.1; inject rename / ninja ARGS-only junk / 16.x snapshot disable. Not AV evasion. See docs/release-v4.0.8.md.
CHANGELOG · Chinese docs above · Windows notes
cd ui && ./build.sh or .\build.ps1 (CGO for GUI)patch-tools command for modifying the frida-tools modulerender_markdown function to display simple Markdown formatting in the terminalgenerate_random_name function to create random Frida modification namesmove_file function to handle "are identical" errors during file moveslist_frida_versions function to render Markdown-formatted version descriptionsbuild_frida function to support building from local deb filespatch_frida_tools and restore_frida_tools functionsmodify_frida_tools function for more reliable frida-tools modificationsdownload_frida_module function with support for specific OS and architectureshow_main_usage and other usage instruction functions to reflect new featuresparse_arguments function to accommodate the new patch-tools commandFRIDA_NAMEfridare.sh script, integrating all functionalities and providing a more complete command-line interfacebuild, ls, download, lm, setup, config, and help commandsfrida:rpc feature modification
core.py file, and modifies the _frida.abi3.so fileautoinstall.sh script for automatic deployment of Frida plugins.Makefile to simplify the project build and deployment process.Configure password-free SSH login for issh
# Generate keygen, skip if already generated
ssh-keygen -t rsa -b 4096 -C "<EMAIL>"
# Configure iPhone IP, can be skipped if using USB connection
issh ip set <iPhone-IP>
# Copy public key to /var/root on the phone, requires root password alpine
issh scp ~/.ssh/id_rsa.pub
# Add public key to authorized_keys file on remote server
issh run "mkdir -p ~/.ssh && cat /var/root/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh"
fridare.sh - Frida Modification Script
│
├── Main Functions
│ ├── Build Modified Frida (build)
│ │ ├── Support for specified version or latest version
│ │ ├── Auto-generate random 5-character name
│ │ ├── Custom port setting
│ │ └── Support for arm and arm64 architectures
│ ├── List Available Frida Versions (ls, list)
│ │ └── Fetch version info from GitHub API
│ ├── Download Specific Frida Version (download)
│ │ ├── Support for downloading single or all modules
│ │ └── Optional auto-extraction feature
│ ├── List Available Frida Modules (lm, list-modules)
│ ├── Check and Install System Dependencies (setup)
│ │ ├── Auto-detect missing dependencies
│ │ └── Install dependencies using package manager
│ └── Configure Options (config)
│ ├── Set HTTP proxy
│ ├── Set Frida server port
│ └── Set Frida modification name
│
├── Script Structure
│ ├── Initialize Configuration (initialize_config)
│ │ └── Read and create configuration file
│ ├── Parse Arguments (parse_arguments)
│ │ └── Support various command-line options
│ ├── Command Processing
│ │ ├── build: Build modified Frida
│ │ ├── setup: Set up environment
│ │ ├── config: Manage configuration
│ │ ├── list: List versions
│ │ ├── download: Download modules
│ │ └── list-modules: List modules
│ └── Main Function (main)
│ └── Entry point integrating all functionalities
│
├── Build Process (build_frida)
│ ├── Version Check
│ │ └── Support for latest version auto-detection
│ ├── Environment Preparation
│ │ ├── Check Python environment (including Conda)
│ │ └── Check Golang environment
│ ├── Download Frida (download_frida)
│ ├── Unpack deb File
│ ├── Modify Files
│ │ ├── Modify Launch Daemon (modify_launch_daemon)
│ │ │ └── Update plist file
│ │ ├── Modify Debian Files (modify_debian_files)
│ │ │ ├── Update control file
│ │ │ ├── Update extrainst_ file
│ │ │ └── Update prerm file
│ │ └── Modify Binary Files (modify_binary)
│ │ ├── Modify frida-server
│ │ ├── Modify frida-agent.dylib
│ │ └── Use hexreplace tool
│ ├── Repackage deb File (repackage_deb)
│ └── Modify frida-tools (modify_frida_tools)
│ ├── Modify Python library files
│ └── Update strings in core.py
│
├── Auxiliary Functions
│ ├── Log Output (log_info, log_success, log_warning, log_error)
│ │ └── Support for colored output
│ ├── User Confirmation (confirm_execution)
│ │ └── Optional auto-confirm mode
│ ├── Dependency Check (check_dependencies)
│ ├── Dependency Installation (install_dependencies)
│ ├── Configuration Management (set_config, unset_config, list_config)
│ └── Frida Version and Module Lists (list_frida_versions, list_frida_modules)
│
├── Download Functionality (download_frida_module)
│ ├── Version Selection (latest or specified version)
│ ├── Module Selection (single module or all modules)
│ ├── Download Process
│ │ └── Support for HTTP proxy
│ └── Extraction Processing
│ └── Optional auto-extraction feature
│
└── Security and Permissions
├── Maintain sudo Privileges (sudo_keep_alive)
└── Cleanup Process (cleanup)
git clone https://github.com/suifei/fridare.git
cd fridare
./fridare.sh setup
This command will check and install the required dependencies.
./fridare.sh help
Fridare provides multiple commands to meet different needs:
build: Repackage Fridals or list: List available Frida versionsdownload: Download a specific version of Fridalm or list-modules: List available Frida modulessetup: Check and install system dependenciesconfig: Set configuration optionshelp: Display help information./fridare.sh build -v 16.0.19 -p 8899 -y
This command will build Frida version 16.0.19, set the port to 8899, and automatically confirm all prompts.
./fridare.sh ls
./fridare.sh download -v 16.0.19 -m frida-server ./output
This command will download the frida-server module of version 16.0.19 to the ./output directory.
./fridare.sh download -latest -all ./output
./fridare.sh lm
./fridare.sh setup
This command will check and install the required system dependencies.
./fridare.sh config set proxy http://127.0.0.1:7890
./fridare.sh config set port 9999
./fridare.sh config set frida-name abcde
These commands set the proxy, port, and Frida modification name respectively.
./fridare.sh config ls
./fridare.sh help build
This command will display detailed usage for the build command.
./fridare.sh build -latest -p 9999 -y
This command will build using the latest version of Frida, set the port to 9999, and automatically confirm all prompts.
./fridare.sh download -latest -m frida-gadget --no-extract ./output
This command will download the latest version of the frida-gadget module to the ./output directory but won't automatically extract it.
./fridare.sh config frida-tools
This command will install or update frida-tools.
scp ./dist/frida_16.3.3_iphoneos-arm_tcp.deb root@<iPhone-IP>:/var/root/
ssh root@<iPhone-IP>
dpkg -i /var/root/frida_16.3.3_iphoneos-arm_tcp.deb
These examples cover the main functionalities and common usage scenarios of the script. They can help you quickly get started with using it.
To ensure compatibility, please install Frida tools that match the modified server version:
pip install frida-tools==12.4.3
For Node.js users:
npm install frida@16.3.3
If your device is accessed via USB, you can use the following command to connect to the local frida-server:
frida -U -f <target-process>
If not using a USB data cable, you can use the following commands to connect to the remote frida-server:
frida -H <iPhone-IP>:8899 -U
frida-trace -H <iPhone-IP>:8899 ...
frida-ps -H <iPhone-IP>:8899
frida-inject -H <iPhone-IP>:8899 ...
Core principles of the Fridare project:
The core idea of Fridare is to modify frida-server to make it harder to detect. This is mainly achieved through the following aspects:
Renaming the server file:
Rename frida-server to a randomly generated name (e.g., abcde), which avoids simple name detection.
Modifying startup configuration: Update the LaunchDaemons plist file to use the new server name and custom port. This changes the way the server starts and the port it listens on.
Binary file modification: Use binary replacement techniques to replace "frida" related strings in the server binary file with custom strings. This can avoid detection of Frida by scanning the binary file.
The project uses the dpkg-deb tool to unpack and repack deb files. This allows us to modify the contents of the package, including:
The fridare.sh script automates the entire process:
The script handles packages for both arm and arm64 architectures, ensuring compatibility on different iOS devices.
By changing the server name, port, and internal strings, this project makes it more difficult to detect the presence of Frida through conventional methods. This is particularly useful for using Frida in applications that might actively detect and block Frida.
By allowing users to specify the Frida version and port, the tool provides great flexibility to adapt to different needs and environments.
Using hexreplace to perform binary replacements, modifying binary files without recompiling Frida. While effective, this method has limitations as it can only replace fixed-length strings.
Issues and pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Go
88.1%
Shell
9.0%
PowerShell
1.6%