Skip to content

v1.8.4

Choose a tag to compare

@github-actions github-actions released this 16 Oct 10:02
518624f

Shellsmith v1.8.4

这是当前的 正式版本。本版本的具体变更见下方自动生成列表。

This is the current stable release. See the generated changelog below for version-specific changes.

下载 / Downloads

  • Windows:Shellsmith_1.8.4_windows_x64_setup.exe
  • macOS:Shellsmith_1.8.4_macos_universal.dmg
  • Linux:选择 .AppImage 或 .deb 安装包 / Choose the .AppImage or .deb package
  • Android:Shellsmith_1.8.4_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 with java and keytool is 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 继承与异常处理兼容修复

  • 符合条件的独立方法不再仅因所属类存在继承或接口契约而被排除;保留原方法声明、访问标志和接收者,由 ART 继续负责虚方法分派。
  • 放行通过指令、控制流及异常表校验的独立异常处理方法,修复 throw null 未产生可捕获 NullPointerException 的运行时问题,覆盖捕获顺序、重抛和 finally 路径。
  • 修复合法空资源表、完全无资源表 APK 在资源 ID 重排、Apktool 重打包及空路径映射校验中的失败。
  • 构造器、同步、编译器桥接、特殊对象契约及不支持的状态访问/调用仍按规则保留;零转换和必保方法未覆盖仍明确失败,不把跳过的方法计为已保护。

验证与使用说明

  • 自建 Java/D8 样本的 36 个方法中,26 个完成转换与产物核验,10 个明确保留。在 Android 9、15、16 的 arm64 模拟器上完成 20 轮运行,每轮 482 项断言全部通过,包含 Android 16 的 16 KB 内存页和无资源表变体。
  • 模拟器回归不能替代厂商真机或客户原始 APK 验收;没有客户方法体时,不能保证其全部方法都能转换。完整覆盖范围以当前产物的逐方法报告为准。
  • 升级后需要重新加固,已有 APK 不会自动获得本次修复。PVM2 需要 JDK 17 或更高版本;分享逐方法报告前请手动脱敏。

本次自动构建 / This automated build

  • 提交 / Commit: 518624f — fix: 兼容 PVM2 继承异常及无资源 APK 并发布 1.8.4

文件变更统计 / File change summary

.github/release-notes/versions/1.8.4.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 +-
apps/shield-gui/src/lib/protect-diagnostic.ts | 2 +-
apps/shield-gui/tests/protect-diagnostic.test.mjs | 2 +-
crates/shield-core/Cargo.toml | 2 +-
crates/shield-core/src/protect/resource_format.rs | 27 ++
.../src/protect/resource_format_tests.rs | 57 +++-
crates/shield-core/src/protect/xop_pvm2.rs | 28 ++
crates/shield-core/src/protect_api.rs | 6 +-
crates/shield-core/src/protection_report.rs | 4 +-
docs/process/test-checklist.md | 9 +
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 +-
.../yqsh/protector/packer/Pvm2ProtectionCheck.java | 157 ++++++++++-
.../yqsh/protector/packer/Pvm2RuntimeImages.java | 27 ++
tests/native/pvm2_runtime_check.cpp | 54 +++-
tests/scripts/check-pvm2-art.py | 300 +++++++++++++++++++++
tests/scripts/check-pvm2-runtime.py | 1 +
.../native/src/main/cpp/vm/pvm2_interp.cpp | 6 +-
.../com/yqsh/protector/packer/AutoVmpPolicy.java | 19 +-
.../yqsh/protector/packer/ResourceIdRewriter.java | 8 +
tools/xop-pvm2-packer.jar | Bin 8316281 -> 8316378 bytes
30 files changed, 706 insertions(+), 51 deletions(-)


其他变更

  • fix: 兼容 PVM2 继承异常及无资源 APK 并发布 1.8.4 by @kairowan in #28

Full Changelog: v1.8.3...v1.8.4