Releases: decrypthub/IOSDecryptHub
Release list
IOSDecryptHub v1.27.5
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/latest302,GitHub API 只兜底,避免未认证配额 403。
- App 补上
- 修复引擎缺失时 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 版本、可热更新)不在本版本内,下一步在
idhPC 网关侧实现。
发布完整性
- dylib SHA-256:
47d5e072220b6d2db06292cc4402df95534060067883d83ffbe1bfb163eef20f - rootless deb SHA-256:
8b9ef5d76570e107b40a04ff5580eae5d3e418da130e3d0143b980424fe583ce - roothide deb SHA-256:
3ce96d5941f9f63ff5e46aa3ee97a61e5fff1ddfb506d2aeab572f736f14dbc6
IOSDecryptHub v1.27.4
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
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
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
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(修复源发不出更新)
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 里不会出现这个更新 —— 需要手动装一次:
- 下载
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
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
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
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
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