吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4504|回复: 23
上一主题 下一主题
收起左侧

[Mac OSX] Fridare 修改和定制 frida-server 的魔改工具

  [复制链接]
跳转到指定楼层
楼主
suifei 发表于 2024-7-4 20:31 回帖奖励

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

特性

  • 自动下载并修改指定版本的 frida-server
  • 随机生成新的 frida-server 名称
  • 自定义 frida-server 端口
  • 支持 arm 和 arm64 架构
  • 二进制替换修改
    • frida-server
    • frida-agent.dylib
    • frida-tools
  • 生成可直接安装的修改版 .deb 包

新增特性 v2.2.0 (仅测试 macOS arm 架构,其它架构未测试)

  • 新增加 frida-tools 补丁,适配 frida:rpc 特征魔改
    • 解决 Android 内存扫描该字符串问题
    • 自动扫描本地 pip 安装 frida-tools 的位置,对 core.py 文件进行魔改,对 _frida.abi3.so 文件进行魔改
  • 新增加 frida-agent.dylib 魔改,从文件名称,加载位置进行隐藏
    • 解决 agent 加载未隐藏问题

新增特性 v2.1.1

  • 引入 autoinstall.sh 脚本,实现 Frida 插件的自动部署。
  • 引入 Makefile,简化项目的构建和部署流程。
  • 运行之前请确保本机已经安装了 issh 命令。并配置好了 ssh 的免密登录。
    > 配置 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"

前提条件

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

使用方法

  1. 克隆此仓库:

    git clone https://github.com/suifei/fridare.git
    cd fridare
  2. 使用 Makefile 构建和部署:

    make build       # 构建项目
    make deploy      # 部署项目
  3. 运行构建脚本:

    ./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
  1. 将生成的 .deb 包传输到您的 iOS 设备:

    scp ./dist/frida_16.3.3_iphoneos-arm_tcp.deb root@<iPhone-IP>:/var/root/
  2. SSH 进入您的 iOS 设备并安装修改后的包:

    ssh root@<iPhone-IP>
    dpkg -i /var/root/frida_16.3.3_iphoneos-arm_tcp.deb

安装兼容版本的 Frida 工具

为确保兼容性,请安装与修改后的服务器版本相匹配的 Frida 工具:

pip install frida-tools==12.4.3

对于 Node.js 用户:

npm install frida@16.3.3

使用

如果不使用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 项目的核心原理:

1. frida-server 修改原理

Fridare 的核心思想是修改 frida-server ,使其更难被检测。这主要通过以下几个方面实现:

  • 重命名服务器文件:
    frida-server 重命名为随机生成的名称(如 abcde),这样可以避免简单的名称检测。

  • 修改启动配置:
    更新 LaunchDaemons plist 文件,使其使用新的服务器名称和自定义端口。这样可以改变服务器的启动方式和监听端口。

  • 二进制文件修改:
    使用二进制替换技术,将服务器二进制文件中的 "frida" 相关字符串替换为自定义字符串。这可以避免通过扫描二进制文件来检测 Frida。

2. deb 包修改和重打包

项目使用 dpkg-deb 工具解包和重新打包 deb 文件。这允许我们修改包的内容,包括:

  • 更新 DEBIAN/control 文件中的包名
  • 修改 DEBIAN/extrainst_ 和 DEBIAN/prerm 脚本以使用新的服务器名称
  • 替换和重命名实际的服务器二进制文件

3. 自动化流程

build.sh 脚本自动化了整个过程:

  • 下载指定版本的 frida-server
  • 生成随机名称
  • 修改所有必要的文件
  • 重新打包 deb 文件

4. 兼容性考虑

脚本同时处理 arm 和 arm64 架构的包,确保在不同的 iOS 设备上的兼容性。

5. 安全性增强

通过更改服务器名称、端口和内部字符串,这个项目使得通过常规方法检测 Frida 的存在变得更加困难。这对于在某些可能会主动检测和阻止 Frida 的应用中使用 Frida 非常有用。

6. 灵活性

通过允许用户指定 Frida 版本和端口,该工具提供了很大的灵活性,可以适应不同的需求和环境。

7. 二进制修改技术

使用 hexreplace 来执行二进制替换,在不重新编译 Frida 的情况下修改二进制文件。这种方法虽然有效,但也有局限性,因为它只能替换固定长度的字符串。

注意事项

  • 默认的 root 用户密码为 "alpine"。出于安全考虑,强烈建议更改此密码。
  • 请确保您的 iOS 设备已越狱并安装了 OpenSSH。
  • 此工具仅用于教育和研究目的。请遵守所有适用的法律和条款。

开源地址

suifei/fridare


fridare-2.2.0.zip

730.92 KB, 下载次数: 49, 下载积分: 吾爱币 -1 CB

fridare v2.2.0

免费评分

参与人数 10吾爱币 +12 热心值 +10 收起 理由
www6244365 + 1 + 1 期待弄个0基础的视频教程
萌萌哒的小白 + 2 + 1 我很赞同!
时光/荏苒 + 1 + 1 热心回复!
djc82 + 1 + 1 谢谢@Thanks!
debug_cat + 2 + 1 谢谢@Thanks!
janken + 1 + 1 热心回复!
pdc9911 + 1 + 1 谢谢@Thanks!
jy138290 + 1 + 1 谢谢@Thanks!
iamafailor + 1 + 1 热心回复!
nonefree + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| suifei 发表于 2024-7-11 17:15 |楼主

3.0.1 Fixed

  • 修复在 Conda 环境中无法正确识别和修改 Frida 工具的问题
  • 解决多个 Python 环境共存时的兼容性问题

新增特性 v3.0.0

  • 新增 fridare.sh 脚本,整合所有功能,提供更完整的命令行界面
  • 新增 build, ls, download, lm, setup, config, 和 help 命令
  • 新增配置文件支持,可以保存和加载用户设置
  • 新增颜色输出,提升用户体验
  • 新增自动检查和安装依赖功能
  • 新增下载特定 Frida 模块的功能
  • 新增列出可用 Frida 版本和模块的功能

使用方法

Fridare 提供了多个命令来满足不同的需求:

命令清单

  1. build: 重新打包 Frida
  2. lslist: 列出可用的 Frida 版本
  3. download: 下载特定版本的 Frida
  4. lmlist-modules: 列出可用的 Frida 模块
  5. setup: 检查并安装系统依赖
  6. config: 设置配置选项
  7. help: 显示帮助信息

使用范例

  1. 构建魔改版 Frida

    ./fridare.sh build -v 16.0.19 -p 8899 -y

    这个命令会构建版本 16.0.19 的 Frida,设置端口为 8899,并自动确认所有提示。

  2. 列出可用的 Frida 版本

    ./fridare.sh ls
  3. 下载特定版本的 Frida

    ./fridare.sh download -v 16.0.19 -m frida-server ./output

    这个命令会下载版本 16.0.19 的 frida-server 模块到 ./output 目录。

  4. 下载最新版本的所有 Frida 模块

    ./fridare.sh download -latest -all ./output
  5. 列出可用的 Frida 模块

    ./fridare.sh lm
  6. 设置环境

    ./fridare.sh setup

    这个命令会检查并安装所需的系统依赖。

  7. 配置设置

    ./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 魔改名。

  8. 列出当前配置

    ./fridare.sh config ls
  9. 获取特定命令的帮助信息

    ./fridare.sh help build

    这个命令会显示 build 命令的详细用法。

  10. 使用最新版本构建 Frida

    ./fridare.sh build -latest -p 9999 -y

    这个命令会使用最新版本的 Frida 进行构建,设置端口为 9999,并自动确认所有提示。

  11. 下载但不解压 Frida 模块

    ./fridare.sh download -latest -m frida-gadget --no-extract ./output

    这个命令会下载最新版本的 frida-gadget 模块到 ./output 目录,但不会自动解压。

  12. 安装 frida-tools

    ./fridare.sh config frida-tools

    这个命令会安装或更新 frida-tools。

  13. 将生成的 .deb 包传输到您的 iOS 设备:

    scp ./dist/frida_16.3.3_iphoneos-arm_tcp.deb root@<iPhone-IP>:/var/root/
  14. SSH 进入您的 iOS 设备并安装修改后的包:

    ssh root@<iPhone-IP>
    dpkg -i /var/root/frida_16.3.3_iphoneos-arm_tcp.deb

这些示例涵盖了脚本的主要功能和常见使用场景。可帮助您快速上手使用。

Frida 魔改脚本的结构和功能

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
│   │   ├── 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)

前提条件

  • macOS 操作系统(用于运行构建脚本)
  • Homebrew
  • Python 3
  • Go (用于编译 hexreplace 工具)
  • 越狱的 iOS 设备
  • 在 iOS 设备上安装 OpenSSH
推荐
 楼主| suifei 发表于 2024-7-16 13:59 |楼主

v3.1.0

  • 增加了 patch 命令,用于修补指定的 Frida 模块
    • 例如:安卓 frida-server ./fridare.sh p -m frida-server -latest -os android -arch arm64 -o ./patched
  • 增加了对 patch 命令的帮助信息
  • 增加对 ELF 和 PE 文件格式的支持(支持 Windows,Linux,MacOS,Android,IOS)
  • 更新了 builddownload 等命令的用法说明
  • 修复了一些小的 Bug 并改进了脚本的稳定性

支持 Windows, Linux, MacOS, Android, iOS 各种平台和处理器架构的 frida patch,欢迎测试,有问题记得 Issues (https://github.com/suifei/fridare/issues) 提出来

Full Changelog: https://github.com/suifei/fridare/compare/v3.0.1...v3.1.0



3.png (273.8 KB, 下载次数: 0)

3.png

fridare-3.1.0.zip

1.51 MB, 下载次数: 10, 下载积分: 吾爱币 -1 CB

沙发
xixicoco 发表于 2024-7-5 11:50
3#
jun269 发表于 2024-7-5 13:58
搞了半天一看是手机用的东东,路过。
4#
yushangwl 发表于 2024-7-5 14:27
感谢分享
5#
zhy1992 发表于 2024-7-5 15:42
这个做什么用的
6#
linjason 发表于 2024-7-6 08:23
666666966
7#
PhoenixOe 发表于 2024-7-6 08:56
非常好的工具,多谢楼主了
头像被屏蔽
8#
dangerxyc 发表于 2024-7-6 10:13
提示: 作者被禁止或删除 内容自动屏蔽
9#
bujimo3 发表于 2024-7-6 11:26
非常好的工具,多谢楼主了
10#
debug_cat 发表于 2024-7-6 11:29
大佬牛啊,收藏
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 13:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表