Skip to content

Releases: decrypthub/IOSDecryptHub

IOSDecryptHub v1.27.5

Choose a tag to compare

@taisuii taisuii released this 19 Sep 04:44

IOSDecryptHub v1.27.5

本次更新优先修复越狱插件的更新检查链路,并带上静态链接加密库的逆向引导。

重要修复

  • 修复管理器 App 检查更新没网(-1020 DataNotAllowed):roothide 上 App 的绝对 /var/mobile 会被容器重定向,且缺少网络权限。现在:
    • App 补上 com.apple.security.network.client;
    • 更新请求同时写入 loader prefs 的 updaterRequest 键,借用 daemon 已监听的通道触发;
    • daemon(root,网络可用)处理 check 并回写 state,updated.sh 把 state 同步到引擎目录,App 读引擎目录完成检查;
    • 检查更新优先走 releases/latest 302,GitHub API 只兜底,避免未认证配额 403。
  • 修复引擎缺失时 daemon 静默退出:现在会写 lastOp.error=引擎不存在,App 能看到失败原因。

新增

  • 静态链接加密库逆向引导:get_capabilities.guidance.whenNoCryptoEvents 会在第一次 MCP 握手时给出「标准 crypto hook 全空时」的排查路径;完整方法见 docs/analysis/逆向技巧-静态链接加密库.md。

验证

  • 148(roothide / iPhone 11 / iOS 16.2)实测:管理器 App 检查更新显示「已是最新」,daemon 日志出现 处理请求: check (loader-prefs),state 更新,无 -1020。
  • tests/updater_sim_test.sh:67/67。
  • 源码仓 make verify-fast:unit 6/6、architecture 11/11、MCP 160/160、persistence 8/8。

说明

  • 可插拔 skill 机制(独立于 dylib 版本、可热更新)不在本版本内,下一步在 idh PC 网关侧实现。

发布完整性

  • dylib SHA-256: 47d5e072220b6d2db06292cc4402df95534060067883d83ffbe1bfb163eef20f
  • rootless deb SHA-256: 8b9ef5d76570e107b40a04ff5580eae5d3e418da130e3d0143b980424fe583ce
  • roothide deb SHA-256: 3ce96d5941f9f63ff5e46aa3ee97a61e5fff1ddfb506d2aeab572f736f14dbc6

IOSDecryptHub v1.27.4

Choose a tag to compare

@taisuii taisuii released this 19 Sep 02:54

IOSDecryptHub v1.27.4

本次更新聚焦「事件不丢」与长时间运行稳定性。

新增

  • 事件持久化与强杀回载:高价值事件(Digest / HMAC / 对称 / 非对称 / Network / Keychain)逐条写入 JSONL journal;低价值事件按 150ms / 64KB 批量落盘。进程被强杀后重启,面板自动回载最近窗口(512KB、最多 1000 条)。
  • pipelineStats 新增 journalBytes / journalMaxBytes / restoredEvents,可直接观察持久化状态。
  • 支持 DH_LOG_DIR 覆盖日志目录,便于自动化测试隔离。

修复与优化

  • 事件管线增加背压:soft 1024 仅丢弃 System / File / Other,hard 4096 全丢并计数,避免异常 App 打爆内存。
  • 批量落盘并使用 localtime_r 时间戳,降低高频事件对宿主线程的影响。
  • WebKit 反递归守卫覆盖宿主子类:已知 WebKit selector 一律要求当前 IMP 属于系统镜像;实测 B 站 BFCWKWebViewV2 命中 20 条 skip,TrollFools 注入不再递归卡死。

验证

  • make verify-fast:unit 6/6、architecture 11/11、MCP 159/159、persistence 8/8。
  • 模拟器 sim_test.sh:37/37。
  • iPhone X(rootless / iOS 16.7.15 / B 站):3 轮 kill -9 + 重启,同 seq 内容一致;20 分钟 soak,total 8962 → 14835,pending=0、dropped=0,0 新增崩溃。
  • iPhone 11(roothide / iOS 16.2 / 山东航空):强杀校验 seq 7678 回载 456 条且内容一致;5 分钟 soak,pending=0、dropped=0。

说明

  • 面板恢复覆盖最近窗口,完整历史仍可从 Documents/decrypt_helper.log / .journal 下载。
  • 核心引擎继续保持 fishhook + ObjC swizzle,无 inline hook / trampoline / JIT。

发布完整性

  • dylib SHA-256: caf5a3f365ea2c4e9959233af094efb46fbffe93bca0738c82da655de3d4c6cd
  • rootless deb SHA-256: 93e1115e37d0fa7b06279f4eb046077d52eb87494239bd602483d00f13b72a5b
  • roothide deb SHA-256: e7cc72ab26cffedf7cdc7bd716305429dda6ce265680226517a8c0405ba756f5

IOSDecryptHub v1.27.3

Choose a tag to compare

@taisuii taisuii released this 18 Sep 13:29

IOSDecryptHub v1.27.3

本次变更

  • 1ef2df3 docs: 记录 TrollFools WebKit 递归崩溃与修复
  • 58d937a fix: 避免 WebKit hook 与宿主 swizzle 递归叠加
  • 1a330f4 docs: 修正山航登录 key 为二进制硬编码常量
  • f1b8d2e test: 覆盖 hook_method 参数内存快照
  • 62761e9 feat: 增加 hook 参数内存快照

完整功能

  • 加解密审计:CommonCrypto / SecKey / OpenSSL EVP,摘要 / HMAC / 对称 / 非对称 / KDF 全线覆盖,附应用层调用栈。
  • 行为监控:沙盒文件、dlopen/dlsym 动态加载、网络、Keychain。
  • 进程内砸壳:内核已解密内存写回,cryptid 置 0,零依赖 zip 打包 IPA。
  • MCP 服务(复用 8088):36 个工具覆盖 Capstone 反汇编、内存与符号、xref、运行时事件、捕获控制。
  • Web 面板 + 悬浮窗 + fail-loud 健康监控。

发布完整性

  • dylib SHA-256: e67ea418d35ec89defc9598a931ef1cf695b871cf1e340b09d934b6ce1713fd8
  • 插件源 rootless / roothide deb 已同步

IOSDecryptHub v1.27.2

Choose a tag to compare

@taisuii taisuii released this 18 Sep 07:44

IOSDecryptHub v1.27.2

本次重点

  • 通用网络抓取补面:BSD socket 全家族、fd 生命周期跟踪、Network.framework 明文 send/receive、WebSocket 帧。
  • WebKit 宿主侧观测:WKWebView 导航、evaluateJavaScript、JS bridge、Cookie、WebsiteDataStore、自定义 scheme、inspectable。
  • WebKit JS 网络探针(默认关闭):fetch、XHR、WebSocket、sendBeacon、EventSource、console、localStorage/sessionStorage、WebCrypto 元数据。
  • 稳定性修复:B站启动看门狗、中国移动 Swift 泛型崩溃、xref 内存闸门、arm64e describe_args、注入白名单同步。

发布说明

  • dylib 覆盖 TrollStore 注入与越狱加载器两种载体。
  • 插件源同步 rootless 与 roothide deb。
  • WebKit JS 探针默认关闭,需要显式开启。
  • HTTP/MCP 服务无认证,仅限可信网络使用。

IOSDecryptHub v1.25.6

Choose a tag to compare

@taisuii taisuii released this 14 Sep 13:32

IOSDecryptHub v1.25.6

本次变更

  • 越狱注入名单改为双写:管理器写 prefs,目标 App 读 jb 配置;rootHide 写不动 jb 时由 updated.sh 拷贝。修开关开了却整机不注入、没有悬浮窗。
  • 加载器读不到 prefs 时回退 jb 名单;空数组仍表示全关。
  • 悬浮窗随 scene 重绑,不再 makeKeyAndVisible 抢宿主焦点。
  • 管理器按本机 8088 端口探测,显示是否已注入。

完整功能

  • 加解密审计:CommonCrypto / SecKey / OpenSSL EVP,摘要 / HMAC / 对称 / 非对称 / KDF 全线覆盖,附应用层调用栈。
  • 行为监控:沙盒文件、dlopen/dlsym 动态加载、网络、Keychain。
  • 进程内砸壳:内核已解密内存写回,cryptid 置 0,零依赖 zip 打包 IPA。
  • MCP 服务(复用 8088):36 个工具覆盖 Capstone 反汇编、内存与符号、xref、运行时事件、捕获控制。
  • Web 面板 + 悬浮窗 + fail-loud 健康监控。

发布完整性

  • dylib SHA-256: 60d6571cfeb36b34abace98b59d2550351a5e3393b68f2bdffc4615be8279bcf
  • 插件源 rootless / roothide deb 已同步
  • 无认证 HTTP/MCP 仅限可信网络,不要暴露到公网。

IOSDecryptHub v1.25.5(修复源发不出更新)

Choose a tag to compare

@taisuii taisuii released this 14 Sep 03:32

v1.25.5 — 修复:越狱源实际上一直发不出更新

根因

我们的仓库 Release 从未签名,现代 APT 遇到未签名仓库时返回的是硬错误:

E: The repository 'https://ios.decrypthub.com ./ Release' is not signed.

后果不是"警告后照常更新",而是 APT 拒绝更新索引 —— 设备上留着的还是旧索引
(里面只有 1.24.10),所以所有用户从来收不到新版本,手动刷新源还会看到报错。

(对照:你设备上其它源是 W: GPG error ... NO_PUBKEY,那是警告级,索引照常更新。)

修复

  • 仓库改为签名发布:InRelease(明文签名)+ Release.gpg(分离签名)
  • 公钥随包安装到 APT 信任链:<jbroot>/etc/apt/trusted.gpg.d/iosdecrypthub.gpg
  • 公钥同时可下载:https://ios.decrypthub.com/key.gpg

⚠️ 已经装过旧版本的用户请手动装这一次

因为旧的源本身是坏的(索引冻结),Sileo 里不会出现这个更新 —— 需要手动装一次:

  1. 下载 com.iosdecrypthub_1.25.5_rootless.deb(或 roothide 版)并在 Sileo/Filza 里安装;
    装完后源就恢复了,以后都能正常收到更新。
    —— 或者先导入公钥,再刷新源:
    https://ios.decrypthub.com/key.gpg

安装

  • rootless(Dopamine、palera1n):com.iosdecrypthub_1.25.5_rootless.deb
  • roothide:com.iosdecrypthub_1.25.5_roothide.deb

IOSDecryptHub v1.25.4

Choose a tag to compare

@taisuii taisuii released this 13 Sep 14:42

v1.25.4 — 管理器 App 重做 + 每个 App 独立控制 + 新版本提醒

在桌面打开 IOSDecryptHub(本版起唯一入口,设置里的面板已移除)。

应用管理

  • 搜索:App 名与 bundle id 都能搜
  • 按首字母分组 + 右侧索引条(中文按拼音:微信 → W),App 再多也能直跳
  • 「全部 / 已启用」两个视图:「已启用」只看你开了哪些
  • 每行显示 App 真实图标(圆角);取不到图标时用首字母兜底,不会空着
  • 每行右侧 ⋯ 菜单(长按整行同样可用):
    • 重启 — 结束它并重新打开(开关改动要重启才生效,用它一步到位)
    • 停止 — 只结束进程,不重新打开
  • 改了开关且目标正在运行时,那一行会标出橙色的「需重启」

软件更新(收进「设置」)

  • 有新版本会主动告诉你:齿轮上点一个橙点,进「设置 → 软件更新」能看到
    「发现新版本 x.y.z」;后台每 12 小时自动查一次,打开 App 时也会补查(静默,不打扰)
  • 检查更新、安装新版本
  • 历史版本:列出已发布版本,可切到指定版本
  • 版本号只在「关于」里出现一次
  • 更新完成后已启用的 App 会被自动重启,下次打开就是新引擎

变更

  • 设置面板已移除(与 App 功能重复):包内只剩管理器 App、updater daemon、加载器、引擎四件
  • 依赖从 ellekit, preferenceloader 收敛为 ellekit
  • 悬浮窗不再带任何推广内容

⚠️ 如果你装的是 1.24.10

那一版的引擎文件权限被错打成 700(仅 root 可读),注入会静默失效。请升级到本版。

安装

  • rootless(Dopamine、palera1n):com.iosdecrypthub_1.25.4_rootless.deb
  • roothide:com.iosdecrypthub_1.25.4_roothide.deb

升级后建议 respring 一次:让加载器重新加载,并让设置里那个旧入口彻底消失。

IOSDecryptHub v1.25.3

Choose a tag to compare

@taisuii taisuii released this 13 Sep 14:28

v1.25.3 — 管理器 App 重做 + 每个 App 独立控制

在桌面打开 IOSDecryptHub(本版起唯一入口,设置里的面板已移除)。

应用管理

  • 搜索:App 名与 bundle id 都能搜
  • 按首字母分组 + 右侧索引条(中文按拼音:微信 → W),App 再多也能直跳
  • 「全部 / 已启用」两个视图:「已启用」只看你开了哪些
  • 每行显示 App 真实图标(圆角);取不到图标时用首字母兜底,不会空着
  • 每行右侧 ⋯ 菜单(长按整行同样可用):
    • 重启 — 结束它并重新打开(开关改动要重启才生效,用它一步到位)
    • 停止 — 只结束进程,不重新打开
  • 改了开关且目标正在运行时,那一行会标出橙色的「需重启」

软件更新(收进「设置」)

  • 检查更新、安装新版本
  • 历史版本:列出已发布版本,可切到指定版本
  • 版本号只在「关于」里出现一次
  • 更新完成后已启用的 App 会被自动重启,下次打开就是新引擎

变更

  • 设置面板已移除(与 App 功能重复):包内只剩管理器 App、updater daemon、加载器、引擎四件
  • 依赖从 ellekit, preferenceloader 收敛为 ellekit
  • 悬浮窗不再带任何推广内容

⚠️ 如果你装的是 1.24.10

那一版的引擎文件权限被错打成 700(仅 root 可读),注入会静默失效。请升级到本版。

安装

  • rootless(Dopamine、palera1n):com.iosdecrypthub_1.25.3_rootless.deb
  • roothide:com.iosdecrypthub_1.25.3_roothide.deb

升级后建议 respring 一次:让加载器重新加载,并让设置里那个旧入口彻底消失。

IOSDecryptHub v1.25.2

Choose a tag to compare

@taisuii taisuii released this 13 Sep 12:49

v1.25.2 — 修复:装完自动结束已启用 App

修复

  • 越狱安装的目标 App 装完不会被结束:可执行名映射原来只扫
    /var/containers/Bundle/Application 与 /Applications,而越狱安装的 App 在
    <jbroot>/Applications(rootless 是 /private/preboot/...,roothide 是 /),
    于是 OTA 后日志里是「重启 0 个应用」,App 里承诺的"完成后自动结束目标 App 进程"对这类
    App 不生效。现在会把 jbroot 的 Applications 一起纳入扫描。

安装

  • rootless(Dopamine、palera1n):com.iosdecrypthub_1.25.2_rootless.deb
  • roothide:com.iosdecrypthub_1.25.2_roothide.deb
  • 依赖:ellekit、preferenceloader

若你装的是 1.24.10,请务必升级:那一版的引擎 dylib 被错打成 700 权限,注入会静默失效。

IOSDecryptHub v1.25.1

Choose a tag to compare

@taisuii taisuii released this 13 Sep 12:39

v1.25.1 — 诊断可见性 + 权限对齐

内容与 1.25.0 相同,多两项修复。

修复

  • daemon 日志可见:原来只写系统统一日志,LaunchDaemon 里声明的日志文件永远是空的,真出问题时无从下手。现在同时写入 /var/log/iosdecrypthub-updated.log
  • dylib 权限对齐:加载器与引擎统一 0755,与线上长期验证可用的 1.24.8 / 1.24.9 产物完全一致

⚠️ 装的是 1.24.10 请升级

已发布的 1.24.10 里 decrypt_helper.dylib 与加载器过滤器被错误地打成了 700(只有 root 能读)。
加载器注入进目标 App 后是以 mobile 身份去 dlopen 引擎的 —— 读不到,注入静默失效。
1.25.x 修复了这一点(postinst 修正引擎权限,本版再从归档层面对齐)。
如果你现在装的是 1.24.10 且从未成功看到过事件,就是这个原因。

安装

  • rootless(Dopamine、palera1n):com.iosdecrypthub_1.25.1_rootless.deb
  • roothide:com.iosdecrypthub_1.25.1_roothide.deb
  • 依赖:ellekit、preferenceloader