页面标题
本平台专为移动应用安全风险研究与合规评估设计,严禁用于任何非法用途。 如有疑问或建议,欢迎加入微信群交流。
应用基础信息
文件基本信息
应用基础信息
Google Play 应用市场信息
关于此应用
组件导出状态统计
文件结构与资源列表
应用签名证书信息
APK已签名
v1 签名: True
v2 签名: True
v3 签名: False
v4 签名: False
主题: C=/, ST=/, L=/, O=/, OU=/, CN=猫羽 世界
签名算法: rsassa_pkcs1v15
有效期自: 2020-03-20 12:12:54+00:00
有效期至: 2045-03-14 12:12:54+00:00
发行人: C=/, ST=/, L=/, O=/, OU=/, CN=猫羽 世界
序列号: 0x7cb09219
哈希算法: sha256
证书MD5: a37eee8034d8a4e09694e96002e8d095
证书SHA1: 8db4d4ae5aa05edcc7d60d7894466896d7857430
证书SHA256: 32250a4b5f3a6733df57a3b9ec16c38d2c7fc5f2f693a9636f8f7b3be3549641
证书SHA512: b93c6a8358f09c36764ad0241e98a0d4521db08de3e6ed583736639754a07899ff5bf06bbc9302ac865fa2baf6c516ec7c527c9e08b38b93046809b1088014df
公钥算法: rsa
密钥长度: 2048
指纹: e8b54f1eb992ce50916c654b321287f8e6135e7d7573efeefe8e92e6aa5b4a39
共检测到 1 个唯一证书
证书安全分析
0
1
1
| 标题 | 严重程度 | 描述信息 |
|---|---|---|
| 已签名应用 | 信息 | 应用已使用代码签名证书进行签名。 |
权限声明与风险分级
| 权限名称 | 安全等级 | 权限内容 | 权限描述 | 关联代码 |
|---|---|---|---|---|
| android.permission.INTERNET | 完全互联网访问 | 允许应用程序创建网络套接字。 | ||
| android.permission.FOREGROUND_SERVICE | 创建前台Service | Android 9.0以上允许常规应用程序使用 Service.startForeground,用于podcast播放(推送悬浮播放,锁屏播放) | ||
| android.permission.FOREGROUND_SERVICE_SPECIAL_USE | 启用特殊用途的前台服务 | 允许常规应用程序使用类型为“specialUse”的 Service.startForeground。 | 无 | |
| android.permission.POST_NOTIFICATIONS | 发送通知的运行时权限 | 允许应用发布通知,Android 13 引入的新权限。 | ||
| android.permission.RECEIVE_BOOT_COMPLETED | 开机自启 | 允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。 | ||
| android.permission.CHANGE_NETWORK_STATE | 改变网络连通性 | 允许应用程序改变网络连通性。 | ||
| android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | 使用 Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 的权限 | 应用程序必须拥有权限才能使用 Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS。 | 无 | |
| android.permission.ACCESS_WIFI_STATE | 查看Wi-Fi状态 | 允许应用程序查看有关Wi-Fi状态的信息。 | ||
| android.permission.ACCESS_COARSE_LOCATION | 获取粗略位置 | 通过WiFi或移动基站的方式获取用户粗略的经纬度信息,定位精度大概误差在30~1500米。恶意程序可以用它来确定您的大概位置。 | ||
| android.permission.ACCESS_FINE_LOCATION | 获取精确位置 | 通过GPS芯片接收卫星的定位信息,定位精度达10米以内。恶意程序可以用它来确定您所在的位置。 | ||
| android.permission.ACCESS_BACKGROUND_LOCATION | 获取后台定位权限 | 允许应用程序访问后台位置。如果您正在请求此权限,则还必须请求ACCESS COARSE LOCATION或ACCESS FINE LOCATION。单独请求此权限不会授予您位置访问权限。 | 无 | |
| android.permission.CAMERA | 拍照和录制视频 | 允许应用程序拍摄照片和视频,且允许应用程序收集相机在任何时候拍到的图像。 | 无 | |
| android.permission.QUERY_ALL_PACKAGES | 获取已安装应用程序列表 | Android 11引入与包可见性相关的权限,允许查询设备上的任何普通应用程序,而不考虑清单声明。 | ||
| android.permission.WAKE_LOCK | 防止手机休眠 | 允许应用程序防止手机休眠,在手机屏幕关闭后后台进程仍然运行。 | ||
| android.permission.ACCESS_NETWORK_STATE | 获取网络状态 | 允许应用程序查看所有网络的状态。 | ||
| io.nekohasekai.sfa.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION | 未知权限 | 来自 android 引用的未知权限。 | 无 |
Manifest 配置安全分析
0
8
0
0
| 序号 | 问题 | 严重程度 | 描述信息 | 操作 |
|---|---|---|---|---|
| 1 |
应用数据允许备份 [android:allowBackup=true] |
警告 | 该标志允许通过 adb 工具备份应用数据。启用 USB 调试的用户可直接复制应用数据,存在数据泄露风险。 | |
| 2 |
Activity (io.nekohasekai.sfa.ui.ShortcutActivity) 未受保护。 [android:exported=true] |
警告 | 检测到 Activity 已导出,未受任何权限保护,任意应用均可访问。 | |
| 3 |
Service (io.nekohasekai.sfa.bg.TileService) 受权限保护,但应检查权限保护级别。 Permission: android.permission.BIND_QUICK_SETTINGS_TILE [android:exported=true] |
警告 | 检测到 Service 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。 | |
| 4 |
Broadcast Receiver (io.nekohasekai.sfa.bg.BootReceiver) 未受保护。 [android:exported=true] |
警告 | 检测到 Broadcast Receiver 已导出,未受任何权限保护,任意应用均可访问。 | |
| 5 |
Service (androidx.work.impl.background.systemjob.SystemJobService) 受权限保护,但应检查权限保护级别。 Permission: android.permission.BIND_JOB_SERVICE [android:exported=true] |
警告 | 检测到 Service 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。 | |
| 6 |
Broadcast Receiver (androidx.work.impl.diagnostics.DiagnosticsReceiver) 受权限保护,但应检查权限保护级别。 Permission: android.permission.DUMP [android:exported=true] |
警告 | 检测到 Broadcast Receiver 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。 | |
| 7 |
Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护,但应检查权限保护级别。 Permission: android.permission.DUMP [android:exported=true] |
警告 | 检测到 Broadcast Receiver 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。 | |
| 8 |
高优先级 Intent(999) - {2} 个命中 [android:priority] |
警告 | 通过设置较高的 Intent 优先级,应用可覆盖其他请求,可能导致安全风险。 |
可浏览 Activity 组件分析
| ACTIVITY | INTENT |
|---|---|
| io.nekohasekai.sfa.ui.MainActivity |
Schemes:
sing-box://,
file://,
content://,
Hosts: import-remote-profile, *, Mime Types: application/octet-stream, text/*, Path Patterns: /.*\\..*\\..*\\..*\\..*\\.bpf, /.*\\..*\\..*\\..*\\.bpf, /.*\\..*\\..*\\.bpf, /.*\\..*\\.bpf, /.*\\.bpf, |
网络通信安全风险分析
| 序号 | 范围 | 严重级别 | 描述 |
|---|
API调用分析
安全漏洞检测
0
5
1
1
0
| 序号 | 问题 | 等级 | 参考标准 | 文件位置 | 操作 |
|---|---|---|---|---|---|
| 1 | 应用程序记录日志信息,不得记录敏感信息 | 信息 |
CWE: CWE-532: 通过日志文件的信息暴露
OWASP MASVS: MSTG-STORAGE-3 |
升级会员:解锁高级权限 | |
| 2 | 应用程序使用不安全的随机数生成器 | 警告 |
CWE: CWE-330: 使用不充分的随机数
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-6 |
升级会员:解锁高级权限 | |
| 3 | 应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库 | 警告 |
CWE: CWE-89: SQL命令中使用的特殊元素转义处理不恰当('SQL 注入')
OWASP Top 10: M7: Client Code Quality |
升级会员:解锁高级权限 | |
| 4 | 此应用程序可能具有Root检测功能 | 安全 |
OWASP MASVS: MSTG-RESILIENCE-1 |
升级会员:解锁高级权限 | |
| 5 | 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据 | 警告 |
CWE: CWE-276: 默认权限不正确
OWASP Top 10: M2: Insecure Data Storage OWASP MASVS: MSTG-STORAGE-2 |
升级会员:解锁高级权限 | |
| 6 | IP地址泄露 | 警告 |
CWE: CWE-200: 信息泄露
OWASP MASVS: MSTG-CODE-2 |
升级会员:解锁高级权限 | |
| 7 | 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等 | 警告 |
CWE: CWE-312: 明文存储敏感信息
OWASP Top 10: M9: Reverse Engineering OWASP MASVS: MSTG-STORAGE-14 |
升级会员:解锁高级权限 |
Native库安全分析
| 序号 | 动态库 | NX(堆栈禁止执行) | PIE | STACK CANARY(栈保护) | RELRO | RPATH(指定SO搜索路径) | RUNPATH(指定SO搜索路径) | FORTIFY(常用函数加强检查) | SYMBOLS STRIPPED(裁剪符号表) |
|---|---|---|---|---|---|---|---|---|---|
| 1 | arm64-v8a/libbox.so | True
info 二进制文件设置了 NX 位。这标志着内存页面不可执行,使得攻击者注入的 shellcode 不可执行。 |
动态共享对象 (DSO)
info 共享库是使用 -fPIC 标志构建的,该标志启用与地址无关的代码。这使得面向返回的编程 (ROP) 攻击更难可靠地执行。 |
False
high 这个二进制文件没有在栈上添加栈哨兵值。栈哨兵是用于检测和防止攻击者覆盖返回地址的一种技术。使用选项-fstack-protector-all来启用栈哨兵。这对于Dart/Flutter库不适用,除非使用了Dart FFI |
Full RELRO
info 此共享对象已完全启用 RELRO。 RELRO 确保 GOT 不会在易受攻击的 ELF 二进制文件中被覆盖。在完整 RELRO 中,整个 GOT(.got 和 .got.plt 两者)被标记为只读。 |
None
info 二进制文件没有设置运行时搜索路径或RPATH |
None
info 二进制文件没有设置 RUNPATH |
False
warning 二进制文件没有任何加固函数。加固函数提供了针对 glibc 的常见不安全函数(如 strcpy,gets 等)的缓冲区溢出检查。使用编译选项 -D_FORTIFY_SOURCE=2 来加固函数。这个检查对于 Dart/Flutter 库不适用 |
True
info 符号被剥离 |
文件分析
| 序号 | 问题 | 文件 |
|---|
行为分析
| 编号 | 行为 | 标签 | 文件 |
|---|---|---|---|
| 00013 | 读取文件并将其放入流中 |
文件 |
升级会员:解锁高级权限 |
| 00022 | 从给定的文件绝对路径打开文件 |
文件 |
升级会员:解锁高级权限 |
| 00063 | 隐式意图(查看网页、拨打电话等) |
控制 |
升级会员:解锁高级权限 |
| 00051 | 通过setData隐式意图(查看网页、拨打电话等) |
控制 |
升级会员:解锁高级权限 |
| 00036 | 从 res/raw 目录获取资源文件 |
反射 |
升级会员:解锁高级权限 |
| 00035 | 查询已安装的包列表 |
反射 |
升级会员:解锁高级权限 |
| 00091 | 从广播中检索数据 |
信息收集 |
升级会员:解锁高级权限 |
| 00147 | 获取当前位置的时间 |
信息收集 位置 |
升级会员:解锁高级权限 |
| 00075 | 获取设备的位置 |
信息收集 位置 |
升级会员:解锁高级权限 |
| 00115 | 获取设备的最后已知位置 |
信息收集 位置 |
升级会员:解锁高级权限 |
| 00096 | 连接到 URL 并设置请求方法 |
命令 网络 |
升级会员:解锁高级权限 |
| 00089 | 连接到 URL 并接收来自服务器的输入流 |
命令 网络 |
升级会员:解锁高级权限 |
| 00109 | 连接到 URL 并获取响应代码 |
网络 命令 |
升级会员:解锁高级权限 |
IP地理位置
手机号提取
URL链接分析
| URL信息 | 源码文件 |
|---|---|
|
https://dontkillmyapp.com/ https://sing-box.sagernet.org/clients/privacy/ https://sekai.icu/sponsors/ |
io/nekohasekai/sfa/ui/main/SettingsFragment.java |
Firebase配置检测
邮箱地址提取
| 源码文件 | |
|---|---|
|
jason@zx2c4.comrecei channelsk-ecdsa-sha2-nistp256@openssh.comdiffi |
lib/arm64-v8a/libbox.so |
第三方追踪器
| 名称 | 类别 | 网址 |
|---|
敏感凭证泄露
已显示 5 个secrets
1、 b7bfa362ec191b0a18660e615da81e46
2、 7d73d21f1bd82c9e5268b6dcf9fde2cb
3、 d06b310d3b5340a70c8c79962c4cfef6
4、 3f64c297dd4fd5e253bf28f78eb37aa2
5、 c20dc7fa2a9489b6f52aafe18f86ecea
活动列表
显示 12 个 activities
服务列表
显示 11 个 services
广播接收者列表
显示 11 个 receivers
内容提供者列表
显示 3 个 providers
第三方SDK
| SDK名称 | 开发者 | 描述信息 |
|---|---|---|
| Jetpack Camera | CameraX 是 Jetpack 的新增库。利用该库,可以更轻松地向应用添加相机功能。该库提供了很多兼容性修复程序和解决方法,有助于在众多设备上打造一致的开发者体验。 | |
| Google Play Service | 借助 Google Play 服务,您的应用可以利用由 Google 提供的最新功能,例如地图,Google+ 等,并通过 Google Play 商店以 APK 的形式分发自动平台更新。 这样一来,您的用户可以更快地接收更新,并且可以更轻松地集成 Google 必须提供的最新信息。 | |
| File Provider | Android | FileProvider 是 ContentProvider 的特殊子类,它通过创建 content://Uri 代替 file:///Uri 以促进安全分享与应用程序关联的文件。 |
| Jetpack App Startup | App Startup 库提供了一种直接,高效的方法来在应用程序启动时初始化组件。库开发人员和应用程序开发人员都可以使用 App Startup 来简化启动顺序并显式设置初始化顺序。App Startup 允许您定义共享单个内容提供程序的组件初始化程序,而不必为需要初始化的每个组件定义单独的内容提供程序。这可以大大缩短应用启动时间。 | |
| Jetpack WorkManager | 使用 WorkManager API 可以轻松地调度即使在应用退出或设备重启时仍应运行的可延迟异步任务。 | |
| Firebase | Firebase 提供了分析、数据库、消息传递和崩溃报告等功能,可助您快速采取行动并专注于您的用户。 | |
| Jetpack ProfileInstaller | 让库能够提前预填充要由 ART 读取的编译轨迹。 | |
| Jetpack Room | Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。 |
污点分析
当apk较大时,代码量会很大,造成数据流图(ICFG)呈现爆炸式增长,所以该功能比较耗时,请先喝杯咖啡,耐心等待……| 规则名称 | 描述信息 | 操作 |
|---|---|---|
| 病毒分析 | 使用安卓恶意软件常用的API进行污点分析 | 开始分析 |
| 漏洞挖掘 | 漏洞挖掘场景下的污点分析 | 开始分析 |
| 隐私合规 | 隐私合规场景下的污点分析:组件内污点传播、组件间污点传播、组件与库函数之间的污点传播 | 开始分析 |
| 密码分析 | 分析加密算法是否使用常量密钥、静态初始化的向量(IV)、加密模式是否使用ECB等 | 开始分析 |
| Callback | 因为Android中系统级的Callback并不会出现显式地进行回调方法的调用,所以如果需要分析Callback方法需要在声明文件中将其声明,这里提供一份AndroidCallbacks.txt文件,里面是一些常见的原生回调接口或类,如果有特殊接口需求,可以联系管理员 | 开始分析 |