actuator/pSlip
GitHub: actuator/pSlip
pSlip 是一款 Android 静态安全分析工具包,通过分析导出组件、Provider 权限、加密误用和 OAuth 配置来发现应用中的提权路径和敏感信息泄露风险。
Stars: 27 | Forks: 1
[](http://www.apache.org/licenses/LICENSE-2.0.html)
[](https://github.com/actuator/pSlip/releases)
[](https://github.com/actuator/pSlip/stargazers)
[](https://github.com/actuator/pSlip/network/members)
[](https://github.com/actuator/pSlip/graphs/contributors)
## 新特性 (v1.4.0)
报告层更新。HTML 报告引擎已重写;检测、manifest、OAuth 和加密恢复流程与 v1.3.5 保持字节一致,因此扫描行为和扫描结果没有变化。
### 可搜索的 HTML 报告
报告搜索框现在是一种字段范围的查询语言,而不是简单的包名过滤器,并且匹配会返回匹配的*findings*,而不仅仅是应用名称:
- Scope:`pkg:` `issue:` `comp:` `conf:` `details:` `adb:` `sev:` `key:`
- 存在性测试:`has:key`, `has:adb`, `has:poc`
- `"引号包裹的短语"`,`-否定` (支持作用域,例如 `-sev:info`),和 `/正则表达式/` (支持作用域,例如 `pkg:/^com\.(samsung|sec)\./`;无效的正则表达式会被忽略而不是抛出异常)
- 搜索条件之间默认为逻辑与 (AND) 关系,匹配不区分大小写,防抖时间为 160 ms
- 问题类型下拉菜单与严重程度标签 (chips) 进行逻辑与 (AND) 运算。被过滤的应用仅显示其匹配的 findings,并提供“显示所有 N 条”的出口。
- 快捷键:`/` 聚焦搜索框,`Esc` 清除搜索,`?` 切换语法帮助面板。
### 密钥材料和 Secrets 导出
恢复的 crypto/OAuth 值现在会从每个 finding 的 `Details` 中提取出来,并作为结构化工件展示(`aes-key`、`des-key`、`iv`、`segment-write-key`、`oauth-client-id`、`oauth-client-secret`;其中 OAuth secret 在报告中保持脱敏状态):
- 专门的 **Key Material & Secrets** 板块,支持按类型过滤,并可作用于当前搜索。
- 一键将当前视图、单个应用或所有密钥材料导出为 CSV (采用 RFC-4180 标准并带 UTF-8 BOM 以兼容 Excel)、JSON、Markdown 格式,或直接复制到剪贴板——包括“导出所有 keys”。
- 报告可通过 `file://` 协议直接打开,无需服务器;当浏览器阻止剪贴板操作时,会自动降级为可复制的覆盖层。
### 兼容性
没有 CLI、flag 或环境变量的变更。现有的 `-all` / `-allsafe` / `-aes-deep` / `-oauth-poc` 工作流和 JSON 输出保持不变;新功能完全包含在生成的 HTML 报告内部。
## 历史版本 (v1.3.5)
### androguard 成为首选引擎(不再需要 Java)
Manifest 解析、OAuth 分析以及 AES/DES/IV 检测全部通过 androguard 直接读取 DEX 运行。你不再需要 apktool 或 jadx 来扫描应用。仅当你通过 `-aes-deep` 开启深度 AES 扫描时才会使用它们。
### 基于 DEX 字节码重写 AES/DES/IV 检测
现在它会交叉引用 `SecretKeySpec`、`IvParameterSpec` 和 `Cipher`,然后将 key/IV 寄存器回溯到其常量来源。字节数组形式的 key 绝不可能是一个单纯的字符串字面量,因此只有当值确实通过 `getBytes()` 或数组字面量到达构造函数时才会被报告。该溯源规则消除了常见的误报(例如 `AES` 等算法名称,`PBKDF2WithHmacSHA1` 等 KDF 名称,以及零散的异常字符串)。每个 finding 都包含恢复的值、密钥大小、cipher transform 以及 `const -> getBytes -> init` 调用链,可直接用于生成报告。
以前经常超时的同一个应用,现在不需要 Java,在不到一分钟内就能完成扫描。如果你需要获取跨分支组装或从静态字段加载的 keys,可以使用 `-aes-deep` 来运行旧的 jadx/apktool 源码扫描流程。
### OAuth scheme 劫持检测
pSlip 会标记拥有 OAuth redirect(自定义 scheme 或 `https` app link)的导出组件,并报告泄露的 `client_id`、可被声明占用的 redirect,以及攻击者在证实其影响之前仍需确认的 runtime 前置条件。
它还能捕获 Google 的“Web application”配置错误,即 Android 应用在 APK 中硬编码了 `client_secret`(错误的 OAuth client 类型),并且会从 DEX 中提取跨平台的 client_ids。该检测默认运行。可构建的 PoC 项目生成位于 `-oauth-poc` 参数之后。
### Split-APK 容器
`.xapk`、`.apks` 和 `.apkm` 包会自动展开。程序会分析基础/代码 APK,并跳过配置/资源 splits。
### Windows:零配置依赖
在一个全新的 Python 安装环境中,pSlip 会自动引导安装其 Python 依赖(tqdm、androguard)并重新运行自身。设置 `PSLIP_NO_AUTOINSTALL=1` 可以关闭此功能。
## 新特性 (v1.4.0)
报告层更新。HTML 报告引擎已重写;检测、manifest、OAuth 和加密恢复流程与 v1.3.5 保持字节一致,因此扫描行为和扫描结果没有变化。
### 可搜索的 HTML 报告
报告搜索框现在是一种字段范围的查询语言,而不是简单的包名过滤器,并且匹配会返回匹配的*findings*,而不仅仅是应用名称:
- Scope:`pkg:` `issue:` `comp:` `conf:` `details:` `adb:` `sev:` `key:`
- 存在性测试:`has:key`, `has:adb`, `has:poc`
- `"引号包裹的短语"`,`-否定` (支持作用域,例如 `-sev:info`),和 `/正则表达式/` (支持作用域,例如 `pkg:/^com\.(samsung|sec)\./`;无效的正则表达式会被忽略而不是抛出异常)
- 搜索条件之间默认为逻辑与 (AND) 关系,匹配不区分大小写,防抖时间为 160 ms
- 问题类型下拉菜单与严重程度标签 (chips) 进行逻辑与 (AND) 运算。被过滤的应用仅显示其匹配的 findings,并提供“显示所有 N 条”的出口。
- 快捷键:`/` 聚焦搜索框,`Esc` 清除搜索,`?` 切换语法帮助面板。
### 密钥材料和 Secrets 导出
恢复的 crypto/OAuth 值现在会从每个 finding 的 `Details` 中提取出来,并作为结构化工件展示(`aes-key`、`des-key`、`iv`、`segment-write-key`、`oauth-client-id`、`oauth-client-secret`;其中 OAuth secret 在报告中保持脱敏状态):
- 专门的 **Key Material & Secrets** 板块,支持按类型过滤,并可作用于当前搜索。
- 一键将当前视图、单个应用或所有密钥材料导出为 CSV (采用 RFC-4180 标准并带 UTF-8 BOM 以兼容 Excel)、JSON、Markdown 格式,或直接复制到剪贴板——包括“导出所有 keys”。
- 报告可通过 `file://` 协议直接打开,无需服务器;当浏览器阻止剪贴板操作时,会自动降级为可复制的覆盖层。
### 兼容性
没有 CLI、flag 或环境变量的变更。现有的 `-all` / `-allsafe` / `-aes-deep` / `-oauth-poc` 工作流和 JSON 输出保持不变;新功能完全包含在生成的 HTML 报告内部。
## 历史版本 (v1.3.5)
### androguard 成为首选引擎(不再需要 Java)
Manifest 解析、OAuth 分析以及 AES/DES/IV 检测全部通过 androguard 直接读取 DEX 运行。你不再需要 apktool 或 jadx 来扫描应用。仅当你通过 `-aes-deep` 开启深度 AES 扫描时才会使用它们。
### 基于 DEX 字节码重写 AES/DES/IV 检测
现在它会交叉引用 `SecretKeySpec`、`IvParameterSpec` 和 `Cipher`,然后将 key/IV 寄存器回溯到其常量来源。字节数组形式的 key 绝不可能是一个单纯的字符串字面量,因此只有当值确实通过 `getBytes()` 或数组字面量到达构造函数时才会被报告。该溯源规则消除了常见的误报(例如 `AES` 等算法名称,`PBKDF2WithHmacSHA1` 等 KDF 名称,以及零散的异常字符串)。每个 finding 都包含恢复的值、密钥大小、cipher transform 以及 `const -> getBytes -> init` 调用链,可直接用于生成报告。
以前经常超时的同一个应用,现在不需要 Java,在不到一分钟内就能完成扫描。如果你需要获取跨分支组装或从静态字段加载的 keys,可以使用 `-aes-deep` 来运行旧的 jadx/apktool 源码扫描流程。
### OAuth scheme 劫持检测
pSlip 会标记拥有 OAuth redirect(自定义 scheme 或 `https` app link)的导出组件,并报告泄露的 `client_id`、可被声明占用的 redirect,以及攻击者在证实其影响之前仍需确认的 runtime 前置条件。
它还能捕获 Google 的“Web application”配置错误,即 Android 应用在 APK 中硬编码了 `client_secret`(错误的 OAuth client 类型),并且会从 DEX 中提取跨平台的 client_ids。该检测默认运行。可构建的 PoC 项目生成位于 `-oauth-poc` 参数之后。
### Split-APK 容器
`.xapk`、`.apks` 和 `.apkm` 包会自动展开。程序会分析基础/代码 APK,并跳过配置/资源 splits。
### Windows:零配置依赖
在一个全新的 Python 安装环境中,pSlip 会自动引导安装其 Python 依赖(tqdm、androguard)并重新运行自身。设置 `PSLIP_NO_AUTOINSTALL=1` 可以关闭此功能。标签:Android, DSL, 云安全监控, 多模态安全, 组件安全, 逆向工具, 静态分析