声明:本平台专为移动应用安全风险研究与合规评估设计,严禁用于任何非法用途。 如有疑问或建议,欢迎加入微信群交流

应用图标

文件基本信息

文件名称
com.gongjin.cradio4.6.apk
文件大小
7.87MB
MD5
7a1e2d4666f96ff5410ba70cabcd9f22
SHA1
a5aaceb4915ea13b8181ad046f3d04044ff6996c
SHA256
f239fbd80ab96e61c2662e76041578f5b06fff0a82db45a0cfd693819ba1b81a
病毒检测
文件安全

应用基础信息

应用名称
CRadio
包名
com.gongjin.cradio
主活动
com.gongjin.cradio.PlayerActivity
目标SDK
33
最小SDK
21
版本号
4.6
子版本号
46
加固信息
未加壳
开发框架
Java/Kotlin

反编译与源码导出

Manifest文件 查看
Java源代码 查看 -- 下载

文件结构与资源列表

    应用签名证书信息

    二进制文件已签名
    v1 签名: True
    v2 签名: True
    v3 签名: True
    v4 签名: False
    主题: C=CN, ST=shanghai, L=shanghai, O=www.cradio.cn, OU=www.cradio.cn, CN=gong jin
    签名算法: rsassa_pkcs1v15
    有效期自: 2012-08-03 13:04:07+00:00
    有效期至: 2111-07-11 13:04:07+00:00
    发行人: C=CN, ST=shanghai, L=shanghai, O=www.cradio.cn, OU=www.cradio.cn, CN=gong jin
    序列号: 0x501bcc47
    哈希算法: sha1
    证书MD5: c3259cdca44da83b6097963f7fc715a5
    证书SHA1: d65b077ba4d4fce95b60c74daf003961db634e63
    证书SHA256: eece09ec8221d7046bd4869eeb51e2c55831dc03bf1b20c92e7e708698e880e2
    证书SHA512: dec2cd47257e51995bb784617bf5ba98240091338af833a56907157e5fe168a00d971151e5851e97840c51fddf7c79b95525a05e37b85091bdc78557b1530847
    公钥算法: rsa
    密钥长度: 1024
    指纹: c7a3e08cfb11e33036a2cf1fc9a4a0ed1f0eadbe669072efad2983f1472c9b9a
    找到 1 个唯一证书

    权限声明与风险分级

    权限名称 安全等级 权限内容 权限描述 关联代码
    android.permission.INTERNET 危险 完全互联网访问 允许应用程序创建网络套接字。
    android.permission.POST_NOTIFICATIONS 危险 发送通知的运行时权限 允许应用发布通知,Android 13 引入的新权限。
    android.permission.WAKE_LOCK 危险 防止手机休眠 允许应用程序防止手机休眠,在手机屏幕关闭后后台进程仍然运行。
    android.permission.FOREGROUND_SERVICE 普通 创建前台Service Android 9.0以上允许常规应用程序使用 Service.startForeground,用于podcast播放(推送悬浮播放,锁屏播放)
    android.permission.ACCESS_NETWORK_STATE 普通 获取网络状态 允许应用程序查看所有网络的状态。
    com.google.android.gms.permission.AD_ID 普通 应用程序显示广告 此应用程序使用 Google 广告 ID,并且可能会投放广告。
    android.permission.ACCESS_ADSERVICES_AD_ID 普通 允许应用访问设备的广告 ID。 此 ID 是 Google 广告服务提供的唯一、用户可重置的标识符,允许应用出于广告目的跟踪用户行为,同时维护用户隐私。
    android.permission.ACCESS_ADSERVICES_ATTRIBUTION 普通 允许应用程序访问广告服务归因 这使应用能够检索与广告归因相关的信息,这些信息可用于有针对性的广告目的。应用程序可以收集有关用户如何与广告互动的数据,例如点击或展示,以衡量广告活动的有效性。
    android.permission.ACCESS_ADSERVICES_TOPICS 普通 允许应用程序访问广告服务主题 这使应用程序能够检索与广告主题或兴趣相关的信息,这些信息可用于有针对性的广告目的。
    com.gongjin.cradio.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION 未知 未知权限 来自 android 引用的未知权限。

    证书安全合规分析

    高危
    0
    警告
    1
    信息
    1
    标题 严重程度 描述信息
    已签名应用 信息 应用程序使用代码签名证书进行签名

    Manifest 配置安全分析

    高危
    0
    警告
    5
    信息
    0
    屏蔽
    0
    序号 问题 严重程度 描述信息 操作
    1 应用程序已启用明文网络流量
    [android:usesCleartextTraffic=true]
    警告 应用程序打算使用明文网络流量,例如明文HTTP,FTP协议,DownloadManager和MediaPlayer。针对API级别27或更低的应用程序,默认值为“true”。针对API级别28或更高的应用程序,默认值为“false”。避免使用明文流量的主要原因是缺乏机密性,真实性和防篡改保护;网络攻击者可以窃听传输的数据,并且可以在不被检测到的情况下修改它。
    2 应用程序数据可以被备份
    [android:allowBackup=true]
    警告 这个标志允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。
    3 Service (androidx.work.impl.background.systemjob.SystemJobService) 受权限保护, 但是应该检查权限的保护级别。
    Permission: android.permission.BIND_JOB_SERVICE
    [android:exported=true]
    警告 发现一个 Service被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。
    4 Broadcast Receiver (androidx.work.impl.diagnostics.DiagnosticsReceiver) 受权限保护, 但是应该检查权限的保护级别。
    Permission: android.permission.DUMP
    [android:exported=true]
    警告 发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。
    5 Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护, 但是应该检查权限的保护级别。
    Permission: android.permission.DUMP
    [android:exported=true]
    警告 发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

    可浏览 Activity 组件分析

    ACTIVITY INTENT

    网络通信安全风险分析

    序号 范围 严重级别 描述

    API调用分析

    API功能 源码文件
    一般功能-> IPC通信
    一般功能-> 文件操作
    调用java反射机制
    一般功能-> 加载so文件 com/gongjin/cradio/player/StreamPlayer.java
    组件-> 启动 Activity
    DEX-> 动态加载
    进程操作-> 获取进程pid I0/i.java
    M1/AbstractC1873a.java
    o1/f.java
    隐私数据-> 剪贴板数据读写操作 A/e.java
    K/C1855w.java
    网络通信-> 蓝牙连接 A/e.java
    一般功能-> 获取系统服务(getSystemService)
    一般功能-> 获取活动网路信息 F0/c.java
    F0/h.java
    JavaScript 接口方法 y0/a.java
    进程操作-> 获取运行的进程\服务 I0/i.java
    辅助功能accessibility相关
    组件-> 启动 Service
    加密解密-> 信息摘要算法 O0/c.java
    加密解密-> Base64 加密
    组件-> 发送广播 B0/b.java
    DEX-> 加载和操作Dex文件 o1/g.java
    网络通信-> HTTP建立连接 T1/C1955c.java
    网络通信-> TCP套接字 T1/C1955c.java
    隐私数据-> 获取GPS位置信息 e/x.java
    加密解密-> Base64 解密 B/b.java
    H/d.java
    一般功能-> Android通知 e1/C1649c.java
    一般功能-> 设置手机铃声,媒体音量 com/gongjin/cradio/SettingActivity.java
    隐私数据-> 获取已安装的应用程序 Q/p.java
    网络通信-> WebView 相关 S0/d.java
    组件-> ContentProvider H/b.java

    安全漏洞检测

    高危
    0
    警告
    4
    信息
    1
    安全
    0
    屏蔽
    0
    序号 问题 等级 参考标准 文件位置 操作
    1 应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库 警告 CWE: CWE-89: SQL命令中使用的特殊元素转义处理不恰当('SQL 注入')
    OWASP Top 10: M7: Client Code Quality
    升级会员:解锁高级权限
    2 应用程序使用不安全的随机数生成器 警告 CWE: CWE-330: 使用不充分的随机数
    OWASP Top 10: M5: Insufficient Cryptography
    OWASP MASVS: MSTG-CRYPTO-6
    升级会员:解锁高级权限
    3 应用程序记录日志信息,不得记录敏感信息 信息 CWE: CWE-532: 通过日志文件的信息暴露
    OWASP MASVS: MSTG-STORAGE-3
    升级会员:解锁高级权限
    4 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据 警告 CWE: CWE-276: 默认权限不正确
    OWASP Top 10: M2: Insecure Data Storage
    OWASP MASVS: MSTG-STORAGE-2
    升级会员:解锁高级权限
    5 MD5是已知存在哈希冲突的弱哈希 警告 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/libcradio.so
    True
    info
    二进制文件设置了 NX 位。这标志着内存页面不可执行,使得攻击者注入的 shellcode 不可执行。
    动态共享对象 (DSO)
    info
    共享库是使用 -fPIC 标志构建的,该标志启用与地址无关的代码。这使得面向返回的编程 (ROP) 攻击更难可靠地执行。
    True
    info
    这个二进制文件在栈上添加了一个栈哨兵值,以便它会被溢出返回地址的栈缓冲区覆盖。这样可以通过在函数返回之前验证栈哨兵的完整性来检测溢出
    Full RELRO
    info
    此共享对象已完全启用 RELRO。 RELRO 确保 GOT 不会在易受攻击的 ELF 二进制文件中被覆盖。在完整 RELRO 中,整个 GOT(.got 和 .got.plt 两者)被标记为只读。
    None
    info
    二进制文件没有设置运行时搜索路径或RPATH
    None
    info
    二进制文件没有设置 RUNPATH
    True
    info
    二进制文件有以下加固函数: ['__memmove_chk', '__memcpy_chk', '__strlen_chk']
    True
    info
    符号被剥离

    文件分析

    序号 问题 文件

    行为分析

    编号 行为 标签 文件
    00063 隐式意图(查看网页、拨打电话等) 控制
    升级会员:解锁高级权限
    00051 通过setData隐式意图(查看网页、拨打电话等) 控制
    升级会员:解锁高级权限
    00013 读取文件并将其放入流中 文件
    升级会员:解锁高级权限
    00125 检查给定的文件路径是否存在 文件
    升级会员:解锁高级权限
    00009 将游标中的数据放入JSON对象 文件
    升级会员:解锁高级权限
    00003 将压缩后的位图数据放入JSON对象中 相机
    升级会员:解锁高级权限
    00091 从广播中检索数据 信息收集
    升级会员:解锁高级权限
    00096 连接到 URL 并设置请求方法 命令
    网络
    升级会员:解锁高级权限
    00089 连接到 URL 并接收来自服务器的输入流 命令
    网络
    升级会员:解锁高级权限
    00109 连接到 URL 并获取响应代码 网络
    命令
    升级会员:解锁高级权限
    00147 获取当前位置的时间 信息收集
    位置
    升级会员:解锁高级权限
    00075 获取设备的位置 信息收集
    位置
    升级会员:解锁高级权限
    00115 获取设备的最后已知位置 信息收集
    位置
    升级会员:解锁高级权限
    00046 方法反射 反射
    升级会员:解锁高级权限
    00026 方法反射 反射
    升级会员:解锁高级权限
    00022 从给定的文件绝对路径打开文件 文件
    升级会员:解锁高级权限
    00036 从 res/raw 目录获取资源文件 反射
    升级会员:解锁高级权限
    00054 从文件安装其他APK 反射
    升级会员:解锁高级权限

    敏感权限分析

    恶意软件常用权限 1/30
    android.permission.WAKE_LOCK
    其它常用权限 4/46
    android.permission.INTERNET
    android.permission.FOREGROUND_SERVICE
    android.permission.ACCESS_NETWORK_STATE
    com.google.android.gms.permission.AD_ID

    恶意软件常用权限 是被已知恶意软件广泛滥用的权限。
    其它常用权限 是已知恶意软件经常滥用的权限。

    IP地理位置

    恶意域名检测

    域名 状态 中国境内 位置信息 解析
    aomedia.org 安全
    IP地址: 185.199.109.153
    国家: 美国
    地区: 宾夕法尼亚
    城市: 加利福尼亚
    查看: Google 地图

    cradio.live 安全
    IP地址: 65.49.196.189
    国家: 美国
    地区: 加利福尼亚
    城市: 洛杉矶
    查看: Google 地图

    手机号提取

    URL链接分析

    URL信息 源码文件
    https://play.google.com/store/apps/details?id=com.gongjin.cradio
    com/gongjin/cradio/PlayerActivity.java
    https://fundingchoicesmessages.google.com/a/consent
    T1/C1955c.java
    https://cradio.live
    自研引擎-S
    https://aomedia.org/emsg/id3
    lib/arm64-v8a/libcradio.so

    Firebase配置检测

    邮箱地址提取

    EMAIL 源码文件
    support@cradio.live
    自研引擎-S

    第三方追踪器

    名称 类别 网址
    Google AdMob Advertisement https://reports.exodus-privacy.eu.org/trackers/312

    敏感凭证泄露

    已显示 3 个secrets
    1、 AdMob广告平台的=> "com.google.android.gms.ads.APPLICATION_ID" : "ca-app-pub-8420055079799783~3033122152"
    2、 c103703e120ae8cc73c9248622f3cd1e
    3、 AbstractViewOnTouchListenerC1854v0

    字符串信息

    建议导出为TXT,方便查看。

    第三方SDK

    SDK名称 开发者 描述信息
    Google Play Service Google 借助 Google Play 服务,您的应用可以利用由 Google 提供的最新功能,例如地图,Google+ 等,并通过 Google Play 商店以 APK 的形式分发自动平台更新。 这样一来,您的用户可以更快地接收更新,并且可以更轻松地集成 Google 必须提供的最新信息。
    Jetpack App Startup Google App Startup 库提供了一种直接,高效的方法来在应用程序启动时初始化组件。库开发人员和应用程序开发人员都可以使用 App Startup 来简化启动顺序并显式设置初始化顺序。App Startup 允许您定义共享单个内容提供程序的组件初始化程序,而不必为需要初始化的每个组件定义单独的内容提供程序。这可以大大缩短应用启动时间。
    Jetpack WorkManager Google 使用 WorkManager API 可以轻松地调度即使在应用退出或设备重启时仍应运行的可延迟异步任务。
    Jetpack ProfileInstaller Google 让库能够提前预填充要由 ART 读取的编译轨迹。
    Jetpack Room Google Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。

    污点分析

    当apk较大时,代码量会很大,造成数据流图(ICFG)呈现爆炸式增长,所以该功能比较耗时,请先喝杯咖啡,耐心等待……
    规则名称 描述信息 操作
    病毒分析 使用安卓恶意软件常用的API进行污点分析 开始分析  
    漏洞挖掘 漏洞挖掘场景下的污点分析 开始分析  
    隐私合规 隐私合规场景下的污点分析:组件内污点传播、组件间污点传播、组件与库函数之间的污点传播 开始分析  
    密码分析 分析加密算法是否使用常量密钥、静态初始化的向量(IV)、加密模式是否使用ECB等 开始分析  
    Callback 因为Android中系统级的Callback并不会出现显式地进行回调方法的调用,所以如果需要分析Callback方法需要在声明文件中将其声明,这里提供一份AndroidCallbacks.txt文件,里面是一些常见的原生回调接口或类,如果有特殊接口需求,可以联系管理员 开始分析