文件结构与资源列表
应用签名证书信息
APK已签名
v1 签名: True
v2 签名: True
v3 签名: False
v4 签名: False
主题: CN=IZANMEI, OU=IZANMEI, O=IZANMEI, L=CA
签名算法: rsassa_pkcs1v15
有效期自: 2023-08-21 05:12:46+00:00
有效期至: 2048-08-14 05:12:46+00:00
发行人: CN=IZANMEI, OU=IZANMEI, O=IZANMEI, L=CA
序列号: 0x1
哈希算法: sha256
证书MD5: 6d04eb79667a9076a0c48a6e7948a879
证书SHA1: d20776ed73a251c59d2eb21c68662563659fa619
证书SHA256: 73628edffba530d68541b278cb0a8bae2ff624f5bbc62affc215cab3dfdc881a
证书SHA512: 6b05e575b05c07e56944c84ba51c6f4105b1f3d32e3dbe0f0392514e1cb8f2b2f62a84834bde064e72f16fd8c4aa292e1d59503b22025fb8eb6ff96ef2eb4ffe
公钥算法: rsa
密钥长度: 2048
指纹: 84feb0d573db1cf6332d82ee8258868c0142cfe63839bf8a39df8e7260d2392e
共检测到 1 个唯一证书
权限声明与风险分级
权限名称 | 安全等级 | 权限内容 | 权限描述 | 关联代码 |
---|---|---|---|---|
android.permission.INTERNET | 完全互联网访问 | 允许应用程序创建网络套接字。 |
|
|
android.permission.ACCESS_NETWORK_STATE | 获取网络状态 | 允许应用程序查看所有网络的状态。 |
|
|
android.permission.ACCESS_WIFI_STATE | 查看Wi-Fi状态 | 允许应用程序查看有关Wi-Fi状态的信息。 | ||
android.permission.LOCAL_MAC_ADDRESS | 未知权限 | 来自 android 引用的未知权限。 | 无关联代码 | |
android.permission.POST_NOTIFICATIONS | 发送通知的运行时权限 | 允许应用发布通知,Android 13 引入的新权限。 | ||
android.permission.WRITE_EXTERNAL_STORAGE | 读取/修改/删除外部存储内容 | 允许应用程序写入外部存储。 |
|
|
android.permission.READ_EXTERNAL_STORAGE | 读取SD卡内容 | 允许应用程序从SD卡读取信息。 |
|
|
android.permission.READ_PHONE_STATE | 读取手机状态和标识 | 允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。 | ||
android.permission.WAKE_LOCK | 防止手机休眠 | 允许应用程序防止手机休眠,在手机屏幕关闭后后台进程仍然运行。 | ||
android.permission.DISABLE_KEYGUARD | 禁用键盘锁 | 允许应用程序停用键锁和任何关联的密码安全设置。例如,在手机上接听电话时停用键锁,在通话结束后重新启用键锁。 | 无关联代码 | |
android.permission.GET_TASKS | 检索当前运行的应用程序 | 允许应用程序检索有关当前和最近运行的任务的信息。恶意应用程序可借此发现有关其他应用程序的保密信息。 | 无关联代码 | |
android.permission.BROADCAST_STICKY | 发送置顶广播 | 允许应用程序发送顽固广播,这些广播在结束后仍会保留。恶意应用程序可能会借此使手机耗用太多内存,从而降低其速度或稳定性。 |
|
|
android.permission.REORDER_TASKS | 对正在运行的应用程序重新排序 | 允许应用程序将任务移至前端和后台。恶意应用程序可借此强行进入前端,而不受您的控制。 | 无关联代码 | |
android.permission.MODIFY_AUDIO_SETTINGS | 允许应用修改全局音频设置 | 允许应用程序修改全局音频设置,如音量。多用于消息语音功能。 | 无关联代码 | |
android.permission.SYSTEM_ALERT_WINDOW | 弹窗 | 允许应用程序弹窗。 恶意程序可以接管手机的整个屏幕。 |
|
|
android.permission.RECEIVE_BOOT_COMPLETED | 开机自启 | 允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。 | ||
android.permission.VIBRATE | 控制振动器 | 允许应用程序控制振动器,用于消息通知振动功能。 | 无关联代码 | |
android.permission.FLASHLIGHT | 控制闪光灯 | 允许应用程序控制闪光灯。 | 无关联代码 | |
android.permission.CALL_PHONE | 直接拨打电话 | 允许应用程序直接拨打电话。恶意程序会在用户未知的情况下拨打电话造成损失。但不被允许拨打紧急电话。 | 无关联代码 | |
android.permission.ACCESS_FINE_LOCATION | 获取精确位置 | 通过GPS芯片接收卫星的定位信息,定位精度达10米以内。恶意程序可以用它来确定您所在的位置。 | 无关联代码 | |
android.permission.ACCESS_COARSE_LOCATION | 获取粗略位置 | 通过WiFi或移动基站的方式获取用户粗略的经纬度信息,定位精度大概误差在30~1500米。恶意程序可以用它来确定您的大概位置。 | ||
android.permission.GET_ACCOUNTS | 探索已知账号 | 允许应用程序访问帐户服务中的帐户列表。 | 无关联代码 | |
android.permission.USE_CREDENTIALS | 使用帐户的身份验证凭据 | 允许应用程序请求身份验证标记。 | 无关联代码 | |
android.permission.MANAGE_ACCOUNTS | 管理帐户列表 | 允许应用程序执行添加、删除帐户及删除其密码之类的操作。 | 无关联代码 | |
android.permission.FOREGROUND_SERVICE | 创建前台Service | Android 9.0以上允许常规应用程序使用 Service.startForeground,用于podcast播放(推送悬浮播放,锁屏播放) | ||
android.permission.REQUEST_INSTALL_PACKAGES | 允许安装应用程序 | Android8.0 以上系统允许安装未知来源应用程序权限。 | 无关联代码 | |
android.permission.BLUETOOTH | 创建蓝牙连接 | 允许应用程序查看或创建蓝牙连接。 |
|
|
android.permission.BLUETOOTH_ADMIN | 管理蓝牙 | 允许程序发现和配对新的蓝牙设备。 | ||
android.permission.MANAGE_EXTERNAL_STORAGE | 文件列表访问权限 | Android11新增权限,读取本地文件,如简历,聊天图片。 | ||
com.izm.android.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION | 未知权限 | 来自 android 引用的未知权限。 | 无关联代码 |
证书安全合规分析
标题 | 严重程度 | 描述信息 |
---|---|---|
已签名应用 | 信息 | 应用已使用代码签名证书进行签名。 |
Manifest 配置安全分析
序号 | 问题 | 严重程度 | 描述信息 | 操作 |
---|---|---|---|---|
1 |
应用已启用明文网络流量 [android:usesCleartextTraffic=true] |
警告 | 应用允许明文网络流量(如 HTTP、FTP 协议、DownloadManager、MediaPlayer 等)。API 级别 27 及以下默认启用,28 及以上默认禁用。明文流量缺乏机密性、完整性和真实性保护,攻击者可窃听或篡改传输数据。建议关闭明文流量,仅使用加密协议。 | |
2 |
应用已配置网络安全策略 [android:networkSecurityConfig=@xml/network_security_config] |
信息 | 网络安全配置允许应用通过声明式配置文件自定义网络安全策略,无需修改代码。可针对特定域名或应用范围进行灵活配置。 | |
3 |
应用可被调试 [android:debuggable=true] |
高危 | 应用开启了可调试标志,攻击者可轻易附加调试器进行逆向分析,导出堆栈信息或访问调试相关类,极大提升被攻击风险。 | |
4 |
Broadcast Receiver (com.zanmeishi.zanplayer.business.player.HeadsetButtonReceiver) 未受保护。 [android:exported=true] |
警告 | 检测到 Broadcast Receiver 已导出,未受任何权限保护,任意应用均可访问。 | |
5 |
Activity (com.zanmeishi.zanplayer.main.MainActivity) 未受保护。 [android:exported=true] |
警告 | 检测到 Activity 已导出,未受任何权限保护,任意应用均可访问。 | |
6 |
Service (androidx.work.impl.background.systemjob.SystemJobService) 受权限保护,但应检查权限保护级别。 Permission: android.permission.BIND_JOB_SERVICE [android:exported=true] |
警告 | 检测到 Service 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。 | |
7 |
Broadcast Receiver (androidx.work.impl.diagnostics.DiagnosticsReceiver) 受权限保护,但应检查权限保护级别。 Permission: android.permission.DUMP [android:exported=true] |
警告 | 检测到 Broadcast Receiver 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。 |
可浏览 Activity 组件分析
ACTIVITY | INTENT |
---|---|
com.zanmeishi.zanplayer.main.FlickerActivity |
Schemes:
zanplayer://,
|
网络通信安全风险分析
序号 | 范围 | 严重级别 | 描述 |
---|---|---|---|
1 | * | 高危 | 基本配置不安全地配置为允许到所有域的明文流量。 |
2 | * | 警告 | 基本配置配置为信任系统证书。 |
3 | zanmei.ai | 高危 | 域配置不安全地配置为允许明文流量到达范围内的这些域。 |
API调用分析
安全漏洞检测
序号 | 问题 | 等级 | 参考标准 | 文件位置 | 操作 |
---|---|---|---|---|---|
1 | 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据 | 警告 |
CWE: CWE-276: 默认权限不正确
OWASP Top 10: M2: Insecure Data Storage OWASP MASVS: MSTG-STORAGE-2 |
升级会员:解锁高级权限 | |
2 | 应用程序记录日志信息,不得记录敏感信息 | 信息 |
CWE: CWE-532: 通过日志文件的信息暴露
OWASP MASVS: MSTG-STORAGE-3 |
升级会员:解锁高级权限 | |
3 | MD5是已知存在哈希冲突的弱哈希 | 警告 |
CWE: CWE-327: 使用了破损或被认为是不安全的加密算法
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-4 |
升级会员:解锁高级权限 | |
4 | 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它 | 信息 |
OWASP MASVS: MSTG-STORAGE-10 |
升级会员:解锁高级权限 | |
5 | 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等 | 警告 |
CWE: CWE-312: 明文存储敏感信息
OWASP Top 10: M9: Reverse Engineering OWASP MASVS: MSTG-STORAGE-14 |
升级会员:解锁高级权限 | |
6 | SHA-1是已知存在哈希冲突的弱哈希 | 警告 |
CWE: CWE-327: 使用了破损或被认为是不安全的加密算法
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-4 |
升级会员:解锁高级权限 | |
7 | IP地址泄露 | 警告 |
CWE: CWE-200: 信息泄露
OWASP MASVS: MSTG-CODE-2 |
升级会员:解锁高级权限 | |
8 | 启用了调试配置。生产版本不能是可调试的 | 高危 |
CWE: CWE-919: 移动应用程序中的弱点
OWASP Top 10: M1: Improper Platform Usage OWASP MASVS: MSTG-RESILIENCE-2 |
升级会员:解锁高级权限 | |
9 | 应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库 | 警告 |
CWE: CWE-89: SQL命令中使用的特殊元素转义处理不恰当('SQL 注入')
OWASP Top 10: M7: Client Code Quality |
升级会员:解锁高级权限 | |
10 | 不安全的Web视图实现。可能存在WebView任意代码执行漏洞 | 警告 |
CWE: CWE-749: 暴露危险方法或函数
OWASP Top 10: M1: Improper Platform Usage OWASP MASVS: MSTG-PLATFORM-7 |
升级会员:解锁高级权限 | |
11 | 此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击 | 安全 |
OWASP MASVS: MSTG-NETWORK-4 |
升级会员:解锁高级权限 | |
12 | 应用程序创建临时文件。敏感信息永远不应该被写进临时文件 | 警告 |
CWE: CWE-276: 默认权限不正确
OWASP Top 10: M2: Insecure Data Storage OWASP MASVS: MSTG-STORAGE-2 |
升级会员:解锁高级权限 | |
13 | 如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击 | 高危 |
CWE: CWE-79: 在Web页面生成时对输入的转义处理不恰当('跨站脚本')
OWASP Top 10: M1: Improper Platform Usage OWASP MASVS: MSTG-PLATFORM-6 |
升级会员:解锁高级权限 | |
14 | SSL的不安全实现。信任所有证书或接受自签名证书是一个关键的安全漏洞。此应用程序易受MITM攻击 | 高危 |
CWE: CWE-295: 证书验证不恰当
OWASP Top 10: M3: Insecure Communication OWASP MASVS: MSTG-NETWORK-3 |
升级会员:解锁高级权限 | |
15 | 应用程序使用不安全的随机数生成器 | 警告 |
CWE: CWE-330: 使用不充分的随机数
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-6 |
升级会员:解锁高级权限 | |
16 | 已启用远程WebView调试 | 高危 |
CWE: CWE-919: 移动应用程序中的弱点
OWASP Top 10: M1: Improper Platform Usage OWASP MASVS: MSTG-RESILIENCE-2 |
升级会员:解锁高级权限 |
Native库安全分析
序号 | 动态库 | NX(堆栈禁止执行) | PIE | STACK CANARY(栈保护) | RELRO | RPATH(指定SO搜索路径) | RUNPATH(指定SO搜索路径) | FORTIFY(常用函数加强检查) | SYMBOLS STRIPPED(裁剪符号表) |
---|
文件分析
序号 | 问题 | 文件 |
---|
行为分析
编号 | 行为 | 标签 | 文件 |
---|---|---|---|
00022 | 从给定的文件绝对路径打开文件 |
文件 |
升级会员:解锁高级权限 |
00013 | 读取文件并将其放入流中 |
文件 |
升级会员:解锁高级权限 |
00043 | 计算WiFi信号强度 |
信息收集 WiFi |
升级会员:解锁高级权限 |
00034 | 查询当前数据网络类型 |
信息收集 网络 |
升级会员:解锁高级权限 |
00130 | 获取当前WIFI信息 |
WiFi 信息收集 |
升级会员:解锁高级权限 |
00012 | 读取数据并放入缓冲流 |
文件 |
升级会员:解锁高级权限 |
00162 | 创建 InetSocketAddress 对象并连接到它 |
socket |
升级会员:解锁高级权限 |
00163 | 创建新的 Socket 并连接到它 |
socket |
升级会员:解锁高级权限 |
00125 | 检查给定的文件路径是否存在 |
文件 |
升级会员:解锁高级权限 |
00063 | 隐式意图(查看网页、拨打电话等) |
控制 |
升级会员:解锁高级权限 |
00191 | 获取短信收件箱中的消息 |
短信 |
升级会员:解锁高级权限 |
00023 | 从当前应用程序启动另一个应用程序 |
反射 控制 |
升级会员:解锁高级权限 |
00062 | 查询WiFi信息和WiFi Mac地址 |
WiFi 信息收集 |
升级会员:解锁高级权限 |
00082 | 获取当前WiFi MAC地址 |
信息收集 WiFi |
升级会员:解锁高级权限 |
00036 | 从 res/raw 目录获取资源文件 |
反射 |
升级会员:解锁高级权限 |
00035 | 查询已安装的包列表 |
反射 |
升级会员:解锁高级权限 |
00104 | 检查给定路径是否是目录 |
文件 |
升级会员:解锁高级权限 |
00051 | 通过setData隐式意图(查看网页、拨打电话等) |
控制 |
升级会员:解锁高级权限 |
00024 | Base64解码后写入文件 |
反射 文件 |
升级会员:解锁高级权限 |
00001 | 初始化位图对象并将数据(例如JPEG)压缩为位图对象 |
相机 |
升级会员:解锁高级权限 |
敏感权限分析
恶意软件常用权限 是被已知恶意软件广泛滥用的权限。
其它常用权限 是已知恶意软件经常滥用的权限。
IP地理位置
手机号提取
URL链接分析
URL信息 | 源码文件 |
---|---|
http://javax.xml.transform.sax.saxresult/feature http://javax.xml.transform.sax.saxsource/feature |
org/objectweb/asm/xml/Processor.java |
2.5.29.19 2.5.29.15 |
com/koushikdutta/async/AsyncSSLSocketWrapper.java |
224.0.0.251 8.8.8.8 |
com/koushikdutta/async/dns/Dns.java |
http://www.antlr.org/ |
antlr/DocBookCodeGenerator.java |
10.0.0.172 |
com/zanmeishi/zanplayer/business/login/model/LoginConstants.java |
javascript:webviewjavascriptbridge._fetchqueue |
com/github/lzyzsd/jsbridge/BridgeWebView.java |
javascript:webviewjavascriptbridge._fetchqueue javascript:webviewjavascriptbridge |
com/github/lzyzsd/jsbridge/BridgeUtil.java |
http://www.magelang.com http://www.antlr.org |
antlr/HTMLCodeGenerator.java |
https://github.com/vinc3m1 https://github.com/vinc3m1/roundedimageview https://github.com/vinc3m1/roundedimageview.git |
自研引擎-S |
Firebase配置检测
邮箱地址提取
源码文件 | |
---|---|
thetick@magelang.com |
antlr/debug/LLkDebuggingParser.java |
parrt@jguru.com |
antlr/Tool.java |
第三方追踪器
名称 | 类别 | 网址 |
---|
敏感凭证泄露
活动列表
显示 20 个 activities
服务列表
显示 6 个 services
广播接收者列表
显示 9 个 receivers
内容提供者列表
显示 4 个 providers
第三方SDK
SDK名称 | 开发者 | 描述信息 |
---|---|---|
File Provider | Android | FileProvider 是 ContentProvider 的特殊子类,它通过创建 content://Uri 代替 file:///Uri 以促进安全分享与应用程序关联的文件。 |
Jetpack App Startup | App Startup 库提供了一种直接,高效的方法来在应用程序启动时初始化组件。库开发人员和应用程序开发人员都可以使用 App Startup 来简化启动顺序并显式设置初始化顺序。App Startup 允许您定义共享单个内容提供程序的组件初始化程序,而不必为需要初始化的每个组件定义单独的内容提供程序。这可以大大缩短应用启动时间。 | |
Jetpack WorkManager | 使用 WorkManager API 可以轻松地调度即使在应用退出或设备重启时仍应运行的可延迟异步任务。 | |
Picasso | Square | 一个强大的 Android 图片下载缓存库。 |
Jetpack Media | 与其他应用共享媒体内容和控件。已被 media2 取代。 | |
Jetpack AppCompat | Allows access to new APIs on older API versions of the platform (many using Material Design). | |
Jetpack Room | Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。 |
污点分析
当apk较大时,代码量会很大,造成数据流图(ICFG)呈现爆炸式增长,所以该功能比较耗时,请先喝杯咖啡,耐心等待……规则名称 | 描述信息 | 操作 |
---|---|---|
病毒分析 | 使用安卓恶意软件常用的API进行污点分析 | 开始分析 |
漏洞挖掘 | 漏洞挖掘场景下的污点分析 | 开始分析 |
隐私合规 | 隐私合规场景下的污点分析:组件内污点传播、组件间污点传播、组件与库函数之间的污点传播 | 开始分析 |
密码分析 | 分析加密算法是否使用常量密钥、静态初始化的向量(IV)、加密模式是否使用ECB等 | 开始分析 |
Callback | 因为Android中系统级的Callback并不会出现显式地进行回调方法的调用,所以如果需要分析Callback方法需要在声明文件中将其声明,这里提供一份AndroidCallbacks.txt文件,里面是一些常见的原生回调接口或类,如果有特殊接口需求,可以联系管理员 | 开始分析 |