工具
APKiD Android 加壳与混淆识别工具
RedNaga 推出的 Android 安装包识别工具,类似 PEiD。它借助 yara-python-dex 的 DEX 模块,用 YARA 规则扫描 APK、DEX 文件、嵌套的 ZIP 条目及其中的原生 ELF 库、PE 格式 DLL 和资源,报告识别出的编译器、加壳工具、保护工具、混淆工具以及反虚拟机或反反汇编手法,可按文件输出或输出 JSON。可选的追踪器规则注明来自 Exodus API,用于标出内嵌的追踪 SDK;APKiD 只做识别,不会脱壳或反混淆。
- 目标
- 应用
- 类别
- Android 工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅时最新版本为 3.1.0,于 2026-04-09 打标签并上传到 PyPI;所审阅的 master 提交(2026-10-07)还加入了此后的新规则。pip install apkid 会安装 yara-python-dex>=1.0.1。setup.py 未声明 python_requires,分类信息只列出 Python 3.6 和 3.7,而 Travis CI 使用 3.9,Dockerfile 使用 Python 3.11;在 Windows 上,README 要求固定 Yara 3.11.0 并另行构建 yara-python-dex wheel。
- 输入为分析者有权检查的 APK、DEX 文件或目录。命令行工具默认按文件魔数选择要扫描的条目,嵌套 ZIP 最多深入两层,只扫描不超过 100 MB 的条目,每次 YARA 扫描 30 秒超时;追踪器规则单独编译,仅在使用 --scan-trackers 时启用。README 中的用法说明仍是 v2.1.2 的版本,没有列出 --scan-trackers 和 --include-types。
- 检测基于特征规则,未收录或经过修改的加壳与保护工具不会被报告;README 请用户提交未知样本的文件哈希,以便编写新规则。测试会编译并检查规则,并扫描临时生成的 ZIP 文件;仓库不含样本集。
- 采用双重许可:GPL-3.0,或永久商业许可;后者允许在商业产品中分发 APKiD 二进制及规则,但禁止再分发源码,因此 GitHub 显示为 NOASSERTION。
关于此条目
说明已依据一手来源复核。
一手来源
- README.md GitHub · rednaga/APKiD · 修订 5cb6b25
- apkid/main.py GitHub · rednaga/APKiD · 修订 5cb6b25
- apkid/apkid.py GitHub · rednaga/APKiD · 修订 5cb6b25
- apkid/rules.py GitHub · rednaga/APKiD · 修订 5cb6b25
- apkid/rules/apk/trackers.yara GitHub · rednaga/APKiD · 修订 5cb6b25
- setup.py GitHub · rednaga/APKiD · 修订 5cb6b25
- apkid/__init__.py GitHub · rednaga/APKiD · 修订 5cb6b25
- Dockerfile GitHub · rednaga/APKiD · 修订 5cb6b25
- .travis.yml GitHub · rednaga/APKiD · 修订 5cb6b25
- tests/test_scanner.py GitHub · rednaga/APKiD · 修订 5cb6b25
- LICENSE.GPL GitHub · rednaga/APKiD · 修订 5cb6b25
- LICENSE.COMMERCIAL GitHub · rednaga/APKiD · 修订 5cb6b25
- https://github.com/rednaga/APKiD/releases/tag/v3.1.0
- https://pypi.org/project/apkid/3.1.0/