bytedance/appshark

GitHub: bytedance/appshark

字节跳动开源的 Android 应用静态污点分析平台,用于扫描和检测 APK 中的安全漏洞。

Stars: 1729 | Forks: 177

## 文档索引 - [1.概述](doc/zh/overview.md) - [2.启动](doc/zh/startup.md) - [3.如何编写规则](doc/zh/how_to_write_rules.md) - [4.如何使用 appshark 发现合规问题](doc/zh/how_to_find_compliance_problem_use_appshark.md) - [5.路径穿越游戏](doc/zh/path_traversal_game.md) - [6.参数](doc/zh/argument.md) - [7.引擎配置](doc/zh/EngineConfig.md) - [8.结果](doc/zh/result.md) - [9.常见问题](doc/zh/faq.md) # AppShark Appshark 是一个用于扫描 Android 应用漏洞的静态污点分析平台。 ## 前置条件 Appshark 需要特定版本的 JDK -- [JDK 11](https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html)。经测试,由于依赖兼容性问题,它无法在其他 LTS 版本(JDK 8 和 JDK 16)上运行。 ## 构建/编译 AppShark 我们假设您正在项目仓库的根目录下工作。您可以使用 [gradle](https://gradle.org/) 工具构建整个项目。 ``` $ ./gradlew build -x test ``` 执行上述命令后,您将在 `build/libs` 目录中看到一个名为 `AppShark-0.1.2-all.jar` 的构件文件。 ## 运行 AppShark 与上一步类似,我们假设您仍在项目的根文件夹中。您可以使用以下命令运行该工具 ``` $ java -jar build/libs/AppShark-0.1.2-all.jar config/config.json5 ``` `config.json5` 包含以下配置内容。 ``` { "apkPath": "/Users/apks/app1.apk" } ``` 每个 JSON 都有这些基本字段。 - apkPath: 要分析的 apk 文件的路径 - out: 输出目录的路径 - rules: 指定规则,用 `,` 分隔。默认为 $rulePath 目录下的所有 *.json 文件 - rulePath: 指定规则的父目录,默认为 ./config/rules - maxPointerAnalyzeTime: 为从入口点开始的分析设置的超时时间(秒) - debugRule: 指定启用日志记录以进行调试的规则名称 有关更多配置字段,请访问 `net.bytedance.security.app.ArgumentConfig` 如果您提供的配置 JSON 文件将输出路径设置为项目根目录下的 `out`,运行分析后您将 在该路径下找到结果文件 `out/results.json`。 ## 解读结果 以下是 `results.json` 的一个示例。 ``` { "AppInfo": { "AppName": "test", "PackageName": "net.bytedance.security.app", "min_sdk": 17, "target_sdk": 28, "versionCode": 1000, "versionName": "1.0.0" }, "SecurityInfo": { "FileRisk": { "unZipSlip": { "category": "FileRisk", "detail": "", "model": "2", "name": "unZipSlip", "possibility": "4", "vulners": [ { "details": { "position": "", "Sink": "->$r31", "entryMethod": "", "Source": "->$r3", "url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/1-unZipSlip.html", "target": [ "->$r3", "pf{obj{:35=>java.lang.StringBuilder}(unknown)->@data}", "->$r11", "->$r31" ] }, "hash": "ec57a2a3190677ffe78a0c8aaf58ba5aee4d2247", "possibility": "4" }, { "details": { "position": "", "Sink": "->$r34", "entryMethod": "", "Source": "->$r3", "url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/2-unZipSlip.html", "target": [ "->$r3", "pf{obj{:33=>java.lang.StringBuilder}(unknown)->@data}", "->$r14", "->$r34" ] }, "hash": "26c6d6ee704c59949cfef78350a1d9aef04c29ad", "possibility": "4" } ], "wiki": "", "deobfApk": "/Volumes/dev/zijie/appshark-opensource/app.apk" } } }, "DeepLinkInfo": { }, "HTTP_API": [ ], "JsBridgeInfo": [ ], "BasicInfo": { "ComponentsInfo": { }, "JSNativeInterface": [ ] }, "UsePermissions": [ ], "DefinePermissions": { }, "Profile": "/Volumes/dev/zijie/appshark-opensource/out/vuln/3-profiler.json" } ``` # 许可证 AppShark 根据 [APACHE LICENSE, VERSION 2.0](http://www.apache.org/licenses/LICENSE-2.0) 获得许可 # 安全须知 UI/Server 是一个辅助测试工具,不应在生产环境中使用,只能部署用于本地测试。 # 联系我们 Lark ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/30afd3524f211453.png)
标签:Android 安全, APK 分析, JS文件枚举, Redis利用, 云安全监控, 合规检测, 后台面板检测, 目录枚举, 移动安全, 路径遍历, 静态分析