📈 GH Trending Explorer 🎲 Surprise me

← all repos

kairowan / Shellsmith

git clone https://github.com/kairowan/Shellsmith.git v1.8.6 · 1d ago

Android 与 iOS 应用加固工具 · Android and iOS app hardening

—
stars, 24h
—
stars, 7 days
+141
stars, 30 days · #1,688
141
★ total
35
forks · 1 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageRust
License—
Created2026-09-24 (26d ago)
Last push1d ago
Watchers1
OwnerUser

GitHub topics

Links

README excerpt
# Shellsmith — Android 与 iOS 应用加固工具
简体中文 | English
在本机完成 Android APK/AAB 与 iOS 源码工程的加固、签名和产物验证,加固与签名材料始终不出本机。
- **Android**:DEX 加密与运行时保护,重新打包、对齐并按需签名。
- **iOS**:选择性 Swift 字符串保护、freeRASP 运行时检测,配合 Apple 原生 Archive、导出与签名验证。
两条链路都用于提高静态分析、篡改和非法重签的成本,不承诺无法脱壳或逆向。
推荐使用 Windows、macOS、Linux 桌面 GUI,支持中英文界面;CLI 可从源码构建,用于自动化和本地开发。
> 仅用于保护你拥有合法权利的 Android 与 iOS 应用,请勿用于绕过第三方保护或其他未授权场景。
## 核心能力
- **DEX 加固与运行时保护**:加密业务 DEX,绑定原签名证书;提供基础反调试和可选的严格保护。
- **iOS 源码保护**:在独立工作副本中接入 Swift Confidential 与 freeRASP,再用 `xcodebuild` 完成 Archive、导出和签名验证。
- **加固签名一体化**:证书导入、新建与管理,加固后自动签名,也支持独立签名。
- **加固前风险检查与失败诊断**:检查签名、已有加固、系统要求、ABI 等兼容信号;失败时给出脱敏诊断摘要,可预览并确认发送错误报告。
- **省去重复配置**:记住常用加固选项和加固页证书选择,可调整输出目录与文件名,任务开始后固定本次配置。
- **安装与系统兼容**:处理 APK ZIP 对齐及常见 Native 库兼容问题;标准模式与 Android 4.4 工控模式分开选择。
## 下载与快速开始
从 GitHub Releases 下载正式桌面安装包:
| 平台 | 安装包 |
|---|---|
| Windows | `Shellsmith_x.y.z_windows_x64_setup.exe` |
| macOS | `Shellsmith_x.y.z_macos_universal.dmg` |
| Linux | `Shellsmith_x.y.z_linux_amd64.AppImage` 或 `.deb` |
### 环境要求
- 完整 JDK 8 或更高版本,确保 `java`、`keytool` 可用;使用 PVM2 需要 Java 17+。
- 使用桌面发布包无需自行安装 Android SDK;AAB 与 APK 所需的 apktool、apksigner、bundletool、aapt2 已随包提供。
- 仅 iOS 加固需要 macOS 并安装完整 Xcode,Windows 与 Linux 无法 Archive 或导出 IPA。
签名状态随构建方式不同,下载后请按需确认:
- 本地源码构建产出的是 adhoc 签名包。
- 对外 macOS 产物只有在配置 Developer ID 与 notary profile 后才会签名、公证,并带上 `_notarized` 后缀;未带该后缀的包仅应从可信位置使用。
### Android 快速流程
1. 在 **证书** 页面导入原 APK 使用的签名证书。新项目可创建证书,但输入 APK 也必须先用该证书签名。
2. 在 **加固** 页面选择已签名 APK,或切换到 **AAB · Google Play** 选择已签名 AAB,查看预检结果。
3. 选择目标系统和保护策略。一般使用“Android 5.0 及以上”与“标准保护(推荐)”;目标确有 Android 4.4 时再选择工控模式。
4. 确认输出目录、文件名和自动签名证书,按需调整当前应用的分享选择,再开始加固。
5. 使用签名后的产物,在目标设备验证安装、启动、主要业务功能和覆盖升级。
### iOS 快速流程
在 macOS 安装完整 Xcode,在 **加固 → iOS** 选择 `.xcodeproj` 或 `.xcworkspace`,填写 scheme、Team ID、Bundle ID,先运行检查,再选择独立空目录执行保护。`confidential.yml`、freeRASP 邮箱和 App Attest 服务端地址均为可选项;没有后台地址时仍可执行严格客户端加固,但不包含服务端设备证明闭环。原工程不会被修改。
### 输出与签名
输出默认位于原 APK 同目录,并自动建议文件名,执行前可修改。不启用自动签名时,产物仍需使用原证书签名才能安装运行。
**加固产物与原证书绑定,换证书重签会导致应用无法启动。**
 macOS 首次打开提示无法验证开发者 
确认安装包来源可信,并将应用移到“应用程序”目录后,可执行:
 [code] 
该命令移除隔离标记,不代表应用已获 Apple 公证。随后重新打开;其他问题见使用指南。
## 界面预览
截图用于展示页面布局,具体选项以当前版本为准。更多页面与操作说明见使用指南。
## 兼容性与限制
### 适用范围
| 模式 | 适用范围 |
|---|---|
| Android 5.0 及以上 | API 21+,支持 `armeabi-v7a`、`arm64-v8a`、`x86`、`x86_64`;不要求每个 APK 都包含四种架构 |
| Android 4.4 工控兼容 | API 19+;只接受无 Native 库或 Native 库仅含 `armeabi-v7a` 的 APK;真机验证范围为 Android 4.4.2、`armeabi-v7a`/NEON 工控设备 |
| iOS 源码工程 | iOS 13+;SwiftUI/UIKit 应用 target;Archive、导出与签名仅支持安装完整 Xcode 的 macOS |
### 不支持与不会做的事
- 已加固 APK/AAB 不支持重复加固。
- iOS 需要源码和合法签名权限,不对任意 IPA 注入、绕过签名或重打包。
- 兼容模式不会降低原应用的 `minSdkVersion`。
- 不会为缺失架构生成业务库。
- GUI 一次处理一个 APK 或 AAB,暂不提供批量队列。
- Swift Confidential 仅处理 Swift 源码;Objective-C 工程可接入 RASP,但不做字符串保护,请勿提供 `confidential.yml`。
### 需要自行验证
- 不同厂商系统和硬件仍需实测,构建通过不代表所有环境可用。
- Android GUI 和 CLI 都支持 APK/AAB,但 AAB 的 Google Play App Signing、dynamic-feature、Asset Pack 和动态交付仍需在目标应用内测轨道验证。
- 混合旧 ABI 可逐次确认排除,但优先建议从原工程过滤业务不需要的架构。
- 16 KB ZIP 对齐不等于所有第三方 `.so` 都满足 ELF 页大小要求,也不等于通过 Google Play 审核。
### 已知问题
- Lin