文件基本信息
文件基本信息
文件结构与资源列表
应用签名证书信息
二进制文件已签名
v1 签名: True
v2 签名: True
v3 签名: True
v4 签名: False
主题: C=123456, ST=123456, L=123456, O=123456, OU=123456, CN=123456
签名算法: rsassa_pkcs1v15
有效期自: 2021-09-02 07:05:37+00:00
有效期至: 2071-08-21 07:05:37+00:00
发行人: C=123456, ST=123456, L=123456, O=123456, OU=123456, CN=123456
序列号: 0x7aaccffe
哈希算法: sha256
证书MD5: feac5181aa20b91ad003d739e28f4e81
证书SHA1: b5f9531488ff1922c0702ec430bd88e8b737c34d
证书SHA256: 52c867d91daf19b813e2f44e3c7854f67316aee69469a8cf93f5ca8ea19790fb
证书SHA512: 9ed2f0e0049e26f6d3aea0fb1898115bb70f19c088809c9f94be38d1239cbf3efd044cdc2a112b9f69e11e8269e4e0979e8cf3ad3dc7d27eae6ba90f3ac81555
公钥算法: rsa
密钥长度: 2048
指纹: 0abebc3d3e91f26d8f2ac4be1ecc98af8ab895a9dfd9f3dee1726fc9f7b6a69b
找到 1 个唯一证书
权限声明与风险分级
权限名称 | 安全等级 | 权限内容 | 权限描述 | 关联代码 |
---|---|---|---|---|
android.permission.INTERNET | 危险 | 完全互联网访问 | 允许应用程序创建网络套接字。 | 显示文件 |
android.permission.CAMERA | 危险 | 拍照和录制视频 | 允许应用程序拍摄照片和视频,且允许应用程序收集相机在任何时候拍到的图像。 | 显示文件 |
android.permission.WRITE_EXTERNAL_STORAGE | 危险 | 读取/修改/删除外部存储内容 | 允许应用程序写入外部存储。 |
显示文件
com/jhomlala/better_player/ImageWorker.java
e/f/l/l.java
e/j/a/a.java
e/p/b.java
e/r/n.java
e/r/s/a.java
f/b/a/k/a.java
f/b/a/m/p/t.java
f/b/a/m/q/d/c.java
f/e/a/b.java
f/f/a/d/h/e.java
f/g/a/a/l4/u0/d.java
f/g/a/a/m4/f.java
f/l/a/k.java
f/p/a/l/a.java
f/p/a/l/b.java
f/p/a/m/e.java
j/a/f/c/g.java
j/a/f/f/b.java
q/a/a/a/a/a.java
|
android.permission.READ_EXTERNAL_STORAGE | 危险 | 读取SD卡内容 | 允许应用程序从SD卡读取信息。 | 显示文件 |
android.permission.REQUEST_INSTALL_PACKAGES | 危险 | 允许安装应用程序 | Android8.0 以上系统允许安装未知来源应用程序权限。 | |
android.permission.RECEIVE_BOOT_COMPLETED | 普通 | 开机自启 | 允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。 |
显示文件
com/dexterous/flutterlocalnotifications/ScheduledNotificationBootReceiver.java
com/dexterous/flutterlocalnotifications/ScheduledNotificationReceiver.java
com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/ActionBroadcastReceiver.java
e/b/k/g.java
e/c0/y/m/f/c.java
e/c0/y/m/f/e.java
f/b/a/n/e.java
f/g/a/a/k4/k.java
f/g/a/a/m4/b0.java
f/g/a/a/r3.java
f/g/a/a/s1.java
f/g/d/s/a/i.java
|
android.permission.VIBRATE | 普通 | 控制振动器 | 允许应用程序控制振动器,用于消息通知振动功能。 | 显示文件 |
android.permission.USE_FULL_SCREEN_INTENT | 普通 | 全屏通知 | Android 10以后的全屏 Intent 的通知。 | |
android.permission.SCHEDULE_EXACT_ALARM | 普通 | 精确的闹钟权限 | 允许应用程序使用准确的警报 API。 | |
android.permission.ACCESS_NETWORK_STATE | 普通 | 获取网络状态 | 允许应用程序查看所有网络的状态。 | 显示文件 |
android.permission.WAKE_LOCK | 危险 | 防止手机休眠 | 允许应用程序防止手机休眠,在手机屏幕关闭后后台进程仍然运行。 | 显示文件 |
android.permission.FOREGROUND_SERVICE | 普通 | 创建前台Service | Android 9.0以上允许常规应用程序使用 Service.startForeground,用于podcast播放(推送悬浮播放,锁屏播放) | 显示文件 |
证书安全合规分析
标题 | 严重程度 | 描述信息 |
---|---|---|
已签名应用 | 信息 | 应用程序已使用代码签名证书进行签名 |
Manifest 配置安全分析
序号 | 问题 | 严重程度 | 描述信息 | 操作 |
---|---|---|---|---|
1 |
应用程序可以安装在有漏洞的已更新 Android 版本上 Android 4.4-4.4.4, [minSdk=19] |
信息 | 该应用程序可以安装在具有多个未修复漏洞的旧版本 Android 上。这些设备不会从 Google 接收合理的安全更新。支持 Android 版本 => 10、API 29 以接收合理的安全更新。 | |
2 |
应用程序具有网络安全配置 [android:networkSecurityConfig=0x7f150004] |
信息 | 网络安全配置功能让应用程序可以在一个安全的,声明式的配置文件中自定义他们的网络安全设置,而不需要修改应用程序代码。这些设置可以针对特定的域名和特定的应用程序进行配置。 | |
3 |
应用程序数据存在被泄露的风险 未设置[android:allowBackup]标志 |
警告 | 这个标志 [android:allowBackup]应该设置为false。默认情况下它被设置为true,允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。 | |
4 |
Broadcast Receiver (com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver) 未被保护。 存在一个intent-filter。 |
警告 | 发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。 | |
5 |
Broadcast Receiver (androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy) 未被保护。 存在一个intent-filter。 |
警告 | 发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。 | |
6 |
Broadcast Receiver (androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy) 未被保护。 存在一个intent-filter。 |
警告 | 发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。 | |
7 |
Broadcast Receiver (androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy) 未被保护。 存在一个intent-filter。 |
警告 | 发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。 | |
8 |
Broadcast Receiver (androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy) 未被保护。 存在一个intent-filter。 |
警告 | 发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。 | |
9 |
Broadcast Receiver (androidx.work.impl.background.systemalarm.RescheduleReceiver) 未被保护。 存在一个intent-filter。 |
警告 | 发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。 | |
10 |
Broadcast Receiver (androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver) 未被保护。 存在一个intent-filter。 |
警告 | 发现 Broadcast Receiver与设备上的其他应用程序共享,因此让它可以被设备上的任何其他应用程序访问。intent-filter的存在表明这个Broadcast Receiver是显式导出的。 | |
11 |
Broadcast Receiver (androidx.work.impl.diagnostics.DiagnosticsReceiver) 受权限保护, 但是应该检查权限的保护级别。 Permission: android.permission.DUMP [android:exported=true] |
警告 | 发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。 |
可浏览 Activity 组件分析
ACTIVITY | INTENT |
---|
网络通信安全风险分析
序号 | 范围 | 严重级别 | 描述 |
---|---|---|---|
1 | * | 高危 | 基本配置不安全地配置为允许到所有域的明文流量。 |
API调用分析
安全漏洞检测
序号 | 问题 | 等级 | 参考标准 | 文件位置 | 操作 |
---|---|---|---|---|---|
1 | 应用程序记录日志信息,不得记录敏感信息 | 信息 |
CWE: CWE-532: 通过日志文件的信息暴露
OWASP MASVS: MSTG-STORAGE-3 |
升级会员:解锁高级权限 | |
2 | 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等 | 警告 |
CWE: CWE-312: 明文存储敏感信息
OWASP Top 10: M9: Reverse Engineering OWASP MASVS: MSTG-STORAGE-14 |
升级会员:解锁高级权限 | |
3 | 如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击 | 高危 |
CWE: CWE-79: 在Web页面生成时对输入的转义处理不恰当('跨站脚本')
OWASP Top 10: M1: Improper Platform Usage OWASP MASVS: MSTG-PLATFORM-6 |
升级会员:解锁高级权限 | |
4 | 应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库 | 警告 |
CWE: CWE-89: SQL命令中使用的特殊元素转义处理不恰当('SQL 注入')
OWASP Top 10: M7: Client Code Quality |
升级会员:解锁高级权限 | |
5 | 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它 | 信息 |
OWASP MASVS: MSTG-STORAGE-10 |
升级会员:解锁高级权限 | |
6 | 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据 | 警告 |
CWE: CWE-276: 默认权限不正确
OWASP Top 10: M2: Insecure Data Storage OWASP MASVS: MSTG-STORAGE-2 |
升级会员:解锁高级权限 | |
7 | 应用程序创建临时文件。敏感信息永远不应该被写进临时文件 | 警告 |
CWE: CWE-276: 默认权限不正确
OWASP Top 10: M2: Insecure Data Storage OWASP MASVS: MSTG-STORAGE-2 |
升级会员:解锁高级权限 | |
8 | 应用程序使用不安全的随机数生成器 | 警告 |
CWE: CWE-330: 使用不充分的随机数
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-6 |
升级会员:解锁高级权限 | |
9 | 使用弱加密算法 | 高危 |
CWE: CWE-327: 使用已被攻破或存在风险的密码学算法
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-4 |
升级会员:解锁高级权限 | |
10 | 应用程序使用带PKCS5/PKCS7填充的加密模式CBC。此配置容易受到填充oracle攻击。 | 高危 |
CWE: CWE-649: 依赖于混淆或加密安全相关输入而不进行完整性检查
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-3 |
升级会员:解锁高级权限 | |
11 | 此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击 | 安全 |
OWASP MASVS: MSTG-NETWORK-4 |
升级会员:解锁高级权限 | |
12 | SHA-1是已知存在哈希冲突的弱哈希 | 警告 |
CWE: CWE-327: 使用已被攻破或存在风险的密码学算法
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-4 |
升级会员:解锁高级权限 |
Native库安全分析
序号 | 动态库 | NX(堆栈禁止执行) | PIE | STACK CANARY(栈保护) | RELRO | RPATH(指定SO搜索路径) | RUNPATH(指定SO搜索路径) | FORTIFY(常用函数加强检查) | SYMBOLS STRIPPED(裁剪符号表) |
---|---|---|---|---|---|---|---|---|---|
1 | arm64-v8a/libapp.so |
False
high 二进制文件没有设置NX位。NX位可以通过将内存页标记为不可执行来防止内存损坏漏洞被利用。使用选项–noexecstack或-z noexecstack来将栈标记为不可执行 |
|
True
info 这个二进制文件在栈上添加了一个栈哨兵值,以便它会被溢出返回地址的栈缓冲区覆盖。这样可以通过在函数返回之前验证栈哨兵的完整性来检测溢出 |
Not Applicable
info RELRO 检查不适用于 Flutter/Dart 二进制文件 |
None
info 二进制文件没有设置运行时搜索路径或RPATH |
None
info 二进制文件没有设置 RUNPATH |
False
info 二进制文件没有任何加固函数。加固函数提供了针对 glibc 的常见不安全函数(如 strcpy,gets 等)的缓冲区溢出检查。使用编译选项 -D_FORTIFY_SOURCE=2 来加固函数。这个检查对于 Dart/Flutter 库不适用 |
False
warning 符号可用 |
2 | arm64-v8a/libmsoptimize.so |
True
info 二进制文件设置了 NX 位。这标志着内存页面不可执行,使得攻击者注入的 shellcode 不可执行。 |
|
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 库不适用 |
False
warning 符号可用 |
文件分析
序号 | 问题 | 文件 |
---|---|---|
1 | 找到硬编码的Keystore |
assets/grs_sp.bks assets/hmsincas.bks assets/hmsrootcas.bks |
敏感权限分析
恶意软件常用权限 是被已知恶意软件广泛滥用的权限。
其它常用权限 是已知恶意软件经常滥用的权限。
IP地理位置
恶意域名检测
域名 | 状态 | 中国境内 | 位置信息 | 解析 |
---|---|---|---|---|
schemas.microsoft.com |
安全 |
否 |
IP地址: 13.107.246.74 国家: 美利坚合众国 地区: 华盛顿 城市: 雷德蒙 查看: Google 地图 |
|
exoplayer.dev |
安全 |
否 |
IP地址: 185.199.109.153 国家: 美利坚合众国 地区: 宾夕法尼亚 城市: 加利福尼亚 查看: Google 地图 |
|
aomedia.org |
安全 |
否 |
IP地址: 185.199.109.153 国家: 美利坚合众国 地区: 宾夕法尼亚 城市: 加利福尼亚 查看: Google 地图 |
|
api.flutter.dev |
安全 |
否 |
IP地址: 13.107.246.74 国家: 美利坚合众国 地区: 加利福尼亚 城市: 山景城 查看: Google 地图 |
|
dashif.org |
安全 |
否 |
IP地址: 13.107.246.74 国家: 美利坚合众国 地区: 宾夕法尼亚 城市: 加利福尼亚 查看: Google 地图 |
|
journeyapps.com |
安全 |
否 |
IP地址: 108.139.60.31 国家: 阿拉伯联合酋长国 地区: 杜拜 城市: 迪拜 查看: Google 地图 |
|
手机号提取
URL链接分析
URL信息 | 源码文件 |
---|---|
https://aomedia.org/emsg/id3 https://developer.apple.com/streaming/emsg-id3 |
f/g/a/a/f4/j/a.java |
https://github.com/pichillilorenzo/flutter_inappwebview#important-note-for-android https://github.com/flutter/flutter/wiki/upgrading-pre-1.12-android-projects |
com/pichillilorenzo/flutter_inappwebview/in_app_webview/FlutterWebView.java |
http://dashif.org/guidelines/last-segment-number data:cs:audiopurposecs:2007 http://dashif.org/guidelines/trickmode file:dvb-dash: |
f/g/a/a/h4/a1/n/d.java |
http://dashif.org/guidelines/trickmode |
f/g/a/a/h4/a1/g.java |
https://exoplayer.dev/issues/player-accessed-on-wrong-thread |
f/g/a/a/h2.java |
https://exoplayer.dev/issues/cleartext-not-permitted |
f/g/a/a/l4/g0.java |
https://exoplayer.dev/issues/cleartext-not-permitted file:dvb-dash: https://developer.apple.com/streaming/emsg-id3 https://aomedia.org/emsg/id3 https://exoplayer.dev/issues/player-accessed-on-wrong-thread http://dashif.org/guidelines/last-segment-number https://github.com/pichillilorenzo/flutter_inappwebview#important-note-for-android https://github.com/flutter/flutter/wiki/upgrading-pre-1.12-android-projects https://github.com/journeyapps/zxing-android-embedded http://dashif.org/guidelines/trickmode data:cs:audiopurposecs:2007 https://journeyapps.com/ |
自研引擎-S |
https://api.flutter.dev/flutter/material/scaffold/of.html |
lib/arm64-v8a/libapp.so |
Firebase配置检测
邮箱地址提取
第三方追踪器
名称 | 类别 | 网址 |
---|---|---|
Huawei Mobile Services (HMS) Core | Analytics, Advertisement, Location | https://reports.exodus-privacy.eu.org/trackers/333 |
敏感凭证泄露
活动列表
显示 10 个 activities
服务列表
广播接收者列表
显示 11 个 receivers
内容提供者列表
显示 7 个 providers
第三方SDK
SDK名称 | 开发者 | 描述信息 |
---|---|---|
Flutter | Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 | |
HMS Scan Kit | Huawei | 统一扫码服务(Scan Kit)提供便捷的条形码和二维码扫描、解析、生成能力,帮助您快速构建应用内的扫码功能。得益于华为在计算机视觉领域能力的积累,Scan Kit 可以实现远距离码或小型码的检测和自动放大,同时针对常见复杂扫码场景(如反光、暗光、污损、模糊、柱面)做了针对性识别优化,提升扫码成功率与用户体验。Scan Kit 支持 Android 和 iOS 系统集成。其中,Android 系统集成 Scan Kit 后支持横屏扫码能力。 |
ZXing Android Embedded | JourneyApps | Barcode scanning library for Android, using ZXing for decoding. |
Jetpack App Startup | App Startup 库提供了一种直接,高效的方法来在应用程序启动时初始化组件。库开发人员和应用程序开发人员都可以使用 App Startup 来简化启动顺序并显式设置初始化顺序。App Startup 允许您定义共享单个内容提供程序的组件初始化程序,而不必为需要初始化的每个组件定义单独的内容提供程序。这可以大大缩短应用启动时间。 | |
Jetpack WorkManager | 使用 WorkManager API 可以轻松地调度即使在应用退出或设备重启时仍应运行的可延迟异步任务。 | |
AppGallery Connect | Huawei | 为开发者提供移动应用全生命周期服务,覆盖全终端全场景,降低开发成本,提升运营效率,助力商业成功。 |
HMS ML Kit | Huawei | 机器学习服务(ML Kit)提供机器学习套件,为开发者使用机器学习能力开发各类应用,提供优质体验。得益于华为长期技术积累,ML Kit 为开发者提供简单易用、服务多样、技术领先的机器学习能力,助力开发者更快更好地开发各类 AI 应用。 |
Jetpack Room | Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。 |
污点分析
当apk较大时,代码量会很大,造成数据流图(ICFG)呈现爆炸式增长,所以该功能比较耗时,请先喝杯咖啡,耐心等待……规则名称 | 描述信息 | 操作 |
---|---|---|
病毒分析 | 使用安卓恶意软件常用的API进行污点分析 | 开始分析 |
漏洞挖掘 | 漏洞挖掘场景下的污点分析 | 开始分析 |
隐私合规 | 隐私合规场景下的污点分析:组件内污点传播、组件间污点传播、组件与库函数之间的污点传播 | 开始分析 |
密码分析 | 分析加密算法是否使用常量密钥、静态初始化的向量(IV)、加密模式是否使用ECB等 | 开始分析 |
Callback | 因为Android中系统级的Callback并不会出现显式地进行回调方法的调用,所以如果需要分析Callback方法需要在声明文件中将其声明,这里提供一份AndroidCallbacks.txt文件,里面是一些常见的原生回调接口或类,如果有特殊接口需求,可以联系管理员 | 开始分析 |