Repository navigation
v1.8.5
Shellsmith v1.8.5
这是当前的 正式版本。本版本的具体变更见下方自动生成列表。
This is the current stable release. See the generated changelog below for version-specific changes.
下载 / Downloads
- Windows:
Shellsmith_1.8.5_windows_x64_setup.exe - macOS:
Shellsmith_1.8.5_macos_universal.dmg - Linux:选择
.AppImage或.deb安装包 / Choose the.AppImageor.debpackage - Android:
Shellsmith_1.8.5_android-runtime.zip,包含桌面加固 APK/AAB 所需的 Stub、API 19 兼容资源与 PVM2 Packer;它不是可直接安装在手机上的 GUI / Android runtime resources for desktop APK/AAB protection; not an installable Android GUI
使用须知 / Notes
- 需要完整 JDK 8 或更高版本(含
java与keytool) / A full JDK 8 or later withjavaandkeytoolis required - 加固、签名和证书资料均在本地处理,不会上传用户文件 / APKs, signing keys, and certificates are processed locally and never uploaded
- 安装包尚未进行商业代码签名或公证;首次运行请参考 README / Installers are not currently code-signed or notarized; see the README before the first launch
- 当前桌面 GUI/CLI 支持 APK 与 AAB;Android runtime zip 是桌面加固所需资源,不是可直接安装在手机上的 GUI / The desktop GUI/CLI support APK and AAB; the Android runtime zip contains protection resources and is not an installable Android GUI
本次变更 / What's Changed
以下列表由 GitHub 根据本版本与上一正式版本之间的拉取请求和提交自动生成,完整覆盖本次正式版本周期。
The following changelog is generated by GitHub from pull requests and commits since the previous stable release, covering the complete release cycle.
PVM2 组件方法兼容修复
- 修复 Activity、Application、Service 等组件中的普通方法因包含字段、调用、数组元素或同步块而被叶子白名单整批排除的问题,统一进入共用编译器逐指令校验。
- 修复分支和异常处理区中的可空接收者被静态拒绝的问题;方法长度上限从 512 扩大到 4096 个 DEX 代码单元,同时严格检查展开后的代码长度、寄存器、跳转和异常表边界。
- 修复字符串常量的内嵌空字符、补充平面字符和驻留身份;修复祖先类引用、派生对象及接口默认实现中的父类调用分派。
- PVM2 镜像升级至 v9,打包器、运行时和覆盖报告同步适配。初始化器、生成桥、特殊对象契约及其他未支持方法仍明确保留;零转换及必保方法未覆盖仍失败,不把跳过项计为已保护。
验证与使用说明
- 自建 Java/D8 样本中 46 个方法通过转换和最终产物验证;在 Android 9、15、16 模拟器及 Android 15 真机上完成 20 次启动、10,500 项执行断言,覆盖 16 KB 内存页、无资源表和原生接口默认方法。
- 本地实际 APK 的限定选择范围为 21 个方法,18 个普通方法转换成功,3 个初始化器保留;完成五种安装/启动场景及生命周期、通知服务检查。该结果不代表全部业务流程或全部方法分支已验证。
- 升级后需重新加固,使用配套打包器与运行时;已有 APK 不会自动获得修复。PVM2 需要 JDK 17 或更高版本,具体覆盖范围以本次产物逐方法报告为准,分享前请手动脱敏。
本次自动构建 / This automated build
- 提交 / Commit:
cf1cc7b— fix: 扩展 PVM2 组件方法兼容并发布 1.8.5 (#30)
文件变更统计 / File change summary
.github/release-notes/versions/1.8.5.md | 12 +
Cargo.lock | 8 +-
apps/shield-cli/Cargo.toml | 2 +-
apps/shield-gui/package-lock.json | 4 +-
apps/shield-gui/package.json | 2 +-
apps/shield-gui/src-tauri/Cargo.toml | 2 +-
apps/shield-gui/src-tauri/tauri.conf.json | 2 +-
apps/shield-gui/src/hooks/use-about-page.ts | 2 +-
crates/shield-core/Cargo.toml | 2 +-
crates/shield-core/src/protection_report.rs | 14 +-
docs/usage.md | 8 +-
shield-stub/compat/api19-rust/Cargo.lock | 2 +-
shield-stub/compat/api19-rust/Cargo.toml | 2 +-
shield-stub/src/main/rust/Cargo.toml | 2 +-
tests/README.md | 8 +-
.../yqsh/protector/packer/Pvm2ProtectionCheck.java | 157 +++---
tests/native/pvm2_runtime_check.cpp | 6 +-
tests/scripts/check-pvm2-art.py | 180 ++++++-
.../native/src/main/cpp/vm/pvm2_format.cpp | 2 +-
.../native/src/main/cpp/vm/pvm2_format.h | 1 +
.../native/src/main/cpp/vm/pvm2_interp.cpp | 58 ++-
.../com/yqsh/protector/packer/AutoVmpPolicy.java | 12 +-
.../java/com/yqsh/protector/packer/PackerMain.java | 9 +-
.../com/yqsh/protector/packer/Pvm2Compiler.java | 38 +-
.../com/yqsh/protector/packer/Pvm2Opcodes.java | 2 +-
.../java/com/yqsh/protector/packer/Pvm2Safety.java | 562 ++++-----------------
tools/xop-pvm2-packer.jar | Bin 8316378 -> 8310391 bytes
27 files changed, 479 insertions(+), 620 deletions(-)
其他变更
Full Changelog: v1.8.4...v1.8.5