文件结构与资源列表
应用签名证书信息
APK已签名
v1 签名: False
v2 签名: True
v3 签名: False
v4 签名: None
主题: C=CN, ST=Beijing, L=Beijing, O=TVcpLmkN, OU=oRIDLFTR, CN=rMEzaIBc
签名算法: dsa
有效期自: 2025-05-18 07:26:28+00:00
有效期至: 2030-12-14 07:26:28+00:00
发行人: C=CN, ST=Beijing, L=Beijing, O=TVcpLmkN, OU=oRIDLFTR, CN=rMEzaIBc
序列号: 0x29c1d89c
哈希算法: sha256
证书MD5: df48421d413d1989252ea809b9392417
证书SHA1: 51e5c1d9e6ebe793e498e44b5e9efd1040d00e92
证书SHA256: 4f3175099f27a0d1a8ea0aa595af31442a5b69499f93e464cee13988f7ec87db
证书SHA512: bc34825277a4f17cb2a240d8cdce763700f6bc89ebd016f2264b0271da2485adf6aacc5dc950542739805bc1c9ce466661727c467a5aaf59682184c9e97accea
公钥算法: dsa
密钥长度: 2048
指纹: bd1cd0e787d792d0fbe235b4b085751ffcf98dbece02bbdd83c3b1290b583981
共检测到 1 个唯一证书
权限声明与风险分级
权限名称 | 安全等级 | 权限内容 | 权限描述 | 关联代码 |
---|---|---|---|---|
android.permission.INTERNET | 完全互联网访问 | 允许应用程序创建网络套接字。 | ||
com.google.android.providers.gsf.permission.READ_GSERVICES | 未知权限 | 来自 android 引用的未知权限。 | 无关联代码 | |
android.permission.CAMERA | 拍照和录制视频 | 允许应用程序拍摄照片和视频,且允许应用程序收集相机在任何时候拍到的图像。 | 无关联代码 | |
android.permission.WRITE_EXTERNAL_STORAGE | 读取/修改/删除外部存储内容 | 允许应用程序写入外部存储。 | ||
android.permission.READ_EXTERNAL_STORAGE | 读取SD卡内容 | 允许应用程序从SD卡读取信息。 | ||
android.permission.MANAGE_EXTERNAL_STORAGE | 文件列表访问权限 | Android11新增权限,读取本地文件,如简历,聊天图片。 | ||
android.permission.READ_MEDIA_AUDIO | 允许从外部存储读取音频文件 | 允许应用程序从外部存储读取音频文件。 | 无关联代码 | |
android.permission.READ_MEDIA_IMAGES | 允许从外部存储读取图像文件 | 允许应用程序从外部存储读取图像文件。 | 无关联代码 | |
android.permission.READ_MEDIA_VIDEO | 允许从外部存储读取视频文件 | 允许应用程序从外部存储读取视频文件。 | 无关联代码 | |
android.permission.READ_PRIVILEGED_PHONE_STATE | 读取手机状态和标识 | 允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。 | 无关联代码 | |
android.permission.REQUEST_INSTALL_PACKAGES | 允许安装应用程序 | Android8.0 以上系统允许安装未知来源应用程序权限。 | 无关联代码 | |
android.permission.WRITE_SECURE_SETTINGS | 修改安全系统设置 | 允许应用程序修改系统的安全设置数据。普通应用程序不能使用此权限。 | 无关联代码 | |
android.permission.ACCESS_NETWORK_STATE | 获取网络状态 | 允许应用程序查看所有网络的状态。 | ||
android.permission.VIBRATE | 控制振动器 | 允许应用程序控制振动器,用于消息通知振动功能。 | 无关联代码 | |
android.permission.POST_NOTIFICATIONS | 发送通知的运行时权限 | 允许应用发布通知,Android 13 引入的新权限。 | ||
android.permission.ACCESS_WIFI_STATE | 查看Wi-Fi状态 | 允许应用程序查看有关Wi-Fi状态的信息。 | 无关联代码 | |
com.wspOffice.photo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION | 未知权限 | 来自 android 引用的未知权限。 | 无关联代码 |
证书安全合规分析
标题 | 严重程度 | 描述信息 |
---|---|---|
已签名应用 | 信息 | 应用已使用代码签名证书进行签名。 |
Manifest 配置安全分析
序号 | 问题 | 严重程度 | 描述信息 | 操作 |
---|---|---|---|---|
1 |
应用已启用明文网络流量 [android:usesCleartextTraffic=true] |
警告 | 应用允许明文网络流量(如 HTTP、FTP 协议、DownloadManager、MediaPlayer 等)。API 级别 27 及以下默认启用,28 及以上默认禁用。明文流量缺乏机密性、完整性和真实性保护,攻击者可窃听或篡改传输数据。建议关闭明文流量,仅使用加密协议。 | |
2 |
应用数据存在泄露风险 未设置[android:allowBackup]标志 |
警告 | 建议将 [android:allowBackup] 显式设置为 false。默认值为 true,允许通过 adb 工具备份应用数据,存在数据泄露风险。 | |
3 |
Activity 设置了 TaskAffinity 属性 (com.jarvan.fluwx.wxapi.FluwxWXEntryActivity) |
警告 | 设置 taskAffinity 后,其他应用可读取发送至该 Activity 的 Intent。为防止敏感信息泄露,建议保持默认 affinity(包名)。 | |
4 |
Activity 设置了 TaskAffinity 属性 (com.wspOffice.photo.wxapi.WXEntryActivity) |
警告 | 设置 taskAffinity 后,其他应用可读取发送至该 Activity 的 Intent。为防止敏感信息泄露,建议保持默认 affinity(包名)。 | |
5 |
Activity-Alias (com.wspOffice.photo.wxapi.WXEntryActivity) 未受保护。 [android:exported=true] |
警告 | 检测到 Activity-Alias 已导出,未受任何权限保护,任意应用均可访问。 | |
6 |
Activity-Alias (com.wspOffice.photo.wxapi.WXPayEntryActivity) 未受保护。 [android:exported=true] |
警告 | 检测到 Activity-Alias 已导出,未受任何权限保护,任意应用均可访问。 | |
7 |
Service (com.google.android.gms.auth.api.signin.RevocationBoundService) 受权限保护,但应检查权限保护级别。 Permission: com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION [android:exported=true] |
警告 | 检测到 Service 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。 | |
8 |
Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护,但应检查权限保护级别。 Permission: android.permission.DUMP [android:exported=true] |
警告 | 检测到 Broadcast Receiver 已导出并受未在本应用定义的权限保护。请在权限定义处核查其保护级别。若为 normal 或 dangerous,恶意应用可申请并与组件交互;若为 signature,仅同证书签名应用可访问。 |
可浏览 Activity 组件分析
ACTIVITY | INTENT |
---|
网络通信安全风险分析
序号 | 范围 | 严重级别 | 描述 |
---|
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 | SHA-1是已知存在哈希冲突的弱哈希 | 警告 |
CWE: CWE-327: 使用了破损或被认为是不安全的加密算法
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-4 |
升级会员:解锁高级权限 | |
4 | 应用程序使用不安全的随机数生成器 | 警告 |
CWE: CWE-330: 使用不充分的随机数
OWASP Top 10: M5: Insufficient Cryptography OWASP MASVS: MSTG-CRYPTO-6 |
升级会员:解锁高级权限 | |
5 | 此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击 | 安全 |
OWASP MASVS: MSTG-NETWORK-4 |
升级会员:解锁高级权限 | |
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 |
升级会员:解锁高级权限 |
Native库安全分析
序号 | 动态库 | NX(堆栈禁止执行) | PIE | STACK CANARY(栈保护) | RELRO | RPATH(指定SO搜索路径) | RUNPATH(指定SO搜索路径) | FORTIFY(常用函数加强检查) | SYMBOLS STRIPPED(裁剪符号表) |
---|---|---|---|---|---|---|---|---|---|
1 | arm64-v8a/libapp.so | True
info 二进制文件设置了 NX 位。这标志着内存页面不可执行,使得攻击者注入的 shellcode 不可执行。 |
动态共享对象 (DSO)
info 共享库是使用 -fPIC 标志构建的,该标志启用与地址无关的代码。这使得面向返回的编程 (ROP) 攻击更难可靠地执行。 |
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 库不适用 |
True
info 符号被剥离 |
2 | arm64-v8a/libnetshield.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 二进制文件有以下加固函数: ['__memcpy_chk', '__vsnprintf_chk', '__strlen_chk', '__memset_chk', '__memmove_chk', '__strrchr_chk', '__fgets_chk', '__strchr_chk', '__strcpy_chk', '__strncpy_chk', '__FD_SET_chk', '__FD_ISSET_chk', '__read_chk', '__FD_CLR_chk'] |
True
info 符号被剥离 |
文件分析
序号 | 问题 | 文件 |
---|
行为分析
编号 | 行为 | 标签 | 文件 |
---|---|---|---|
00063 | 隐式意图(查看网页、拨打电话等) |
控制 |
升级会员:解锁高级权限 |
00051 | 通过setData隐式意图(查看网页、拨打电话等) |
控制 |
升级会员:解锁高级权限 |
00102 | 将手机扬声器设置为打开 |
命令 |
升级会员:解锁高级权限 |
00013 | 读取文件并将其放入流中 |
文件 |
升级会员:解锁高级权限 |
00036 | 从 res/raw 目录获取资源文件 |
反射 |
升级会员:解锁高级权限 |
00022 | 从给定的文件绝对路径打开文件 |
文件 |
升级会员:解锁高级权限 |
00161 | 对可访问性节点信息执行可访问性服务操作 |
无障碍服务 |
升级会员:解锁高级权限 |
00173 | 获取 AccessibilityNodeInfo 屏幕中的边界并执行操作 |
无障碍服务 |
升级会员:解锁高级权限 |
00162 | 创建 InetSocketAddress 对象并连接到它 |
socket |
升级会员:解锁高级权限 |
00163 | 创建新的 Socket 并连接到它 |
socket |
升级会员:解锁高级权限 |
00202 | 打电话 |
控制 |
升级会员:解锁高级权限 |
00203 | 将电话号码放入意图中 |
控制 |
升级会员:解锁高级权限 |
00109 | 连接到 URL 并获取响应代码 |
网络 命令 |
升级会员:解锁高级权限 |
00114 | 创建到代理地址的安全套接字连接 |
网络 命令 |
升级会员:解锁高级权限 |
00025 | 监视要执行的一般操作 |
反射 |
升级会员:解锁高级权限 |
00091 | 从广播中检索数据 |
信息收集 |
升级会员:解锁高级权限 |
敏感权限分析
恶意软件常用权限 是被已知恶意软件广泛滥用的权限。
其它常用权限 是已知恶意软件经常滥用的权限。
IP地理位置
恶意域名检测
域名 | 状态 | 中国境内 | 位置信息 | 解析 |
---|---|---|---|---|
api.flutter.dev |
安全 |
否 |
IP地址: 199.36.158.100 国家: 美国 地区: 加利福尼亚 城市: 山景城 查看: Google 地图 |
|
手机号提取
URL链接分析
URL信息 | 源码文件 |
---|---|
https://upload.wikimedia.org/wikipedia/fr/thumb/f/f0/Ch%C3%A9rie_25_logo_2015.svg/430px-Ch%C3%A9rie_25_logo_2015.svg.png https://api-v2.soundcloud.com/media/soundcloud http://lua-users.org/wiki/SandBoxes http://coverartarchive.org/release https://upload.wikimedia.org/wikipedia/fr/thumb/7/7a/C8_vector.svg/490px-C8_vector.svg.png http://api.jamendo.com/get2/stream/track/redirect/?id http://www.metacafe.com/fplayer/%1.swf https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/France_4_2014.png/270px-France_4_2014.png http://usher.twitch.tv/api/channel/hls https://upload.wikimedia.org/wikipedia/fr/thumb/c/c6/Gulli_2010_avril_logo.svg/440px-Gulli_2010_avril_logo.svg.png http://www.katsomo.fi/metafile.asx?p https://upload.wikimedia.org/wikipedia/fr/thumb/8/83/NT1_2012.svg/430px-NT1_2012.svg.png http://www.zapiks.fr/view/index.php?file http://usher.twitch.tv/vod https://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/Arte_Logo_2011.svg/720px-Arte_Logo_2011.svg.png https://upload.wikimedia.org/wikipedia/fr/thumb/b/b4/LCI_logo_ http://www.katsomo.fi/?treeId http://lelombrik.net https://github.com/douglascrockford/JSON-js https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/France_5_logo_antenne_ http://imgjam.com/albums https://upload.wikimedia.org/wikipedia/fr/thumb/1/1f/La_cha%C3%AEne_parlementaire.svg/460px-La_cha%C3%AEne_parlementaire.svg.png http://mb.videolan.org/ws/2/recording/?query http://mb.videolan.org/ws/2/release http://mb.videolan.org/ws/2/release/?query http://images.amazon.com/images/P https://upload.wikimedia.org/wikipedia/fr/thumb/a/a8/TMC_logo_2016.svg/610px-TMC_logo_2016.svg.png http://www.katsomo.fi http://player.extreme.com/info https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/CStar_vector.svg/675px-CStar_vector.svg.png https://api.twitch.tv/kraken/videos/v https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Franceinfo.svg/800px-Franceinfo.svg.png https://upload.wikimedia.org/wikipedia/fr/thumb/c/c3/BFMTV2016.svg/430px-BFMTV2016.svg.png http://images.google.com/images?q http://www.last.fm/music https://upload.wikimedia.org/wikipedia/fr/thumb/3/33/France_3_logo_2016.svg/275px-France_3_logo_2016.svg.png https://a-v2.sndcdn.com/assets/48-551fb851-3.js https://upload.wikimedia.org/wikipedia/fr/thumb/9/93/NRJ_12_logo_2015.svg/440px-NRJ_12_logo_2015.svg.png https://upload.wikimedia.org/wikipedia/fr/thumb/2/2b/W9_2012.png/560px-W9_2012.png http://player.extreme.com/FCPlayer.swf https://api.twitch.tv/api/vods http://api.mpora.com/tv/player/playlist/vid https://api.twitch.tv/api/channels https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/L https://upload.wikimedia.org/wikipedia/fr/thumb/d/dd/Logo_6ter.png/650px-Logo_6ter.png https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Num%C3%A9ro_23_logo.png/530px-Num%C3%A9ro_23_logo.png http://www.rockbox.org/wiki/FmPresets https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Logo_HD1_2012.svg/530px-Logo_HD1_2012.svg.png https://upload.wikimedia.org/wikipedia/fr/thumb/b/b0/France_%C3%94_logo_antenne_ https://upload.wikimedia.org/wikipedia/fr/thumb/e/e8/France_2_logo_antenne_ https://trailers.apple.com/trailers/feeds/data http://www.inf.puc-rio.br https://upload.wikimedia.org/wikipedia/fr/thumb/7/73/Logo_RMC_D%C3%A9couverte_2012.png/630px-Logo_RMC_D%C3%A9couverte_2012.png https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Canal%2B.svg/langfr-685px-Canal%2B.svg.png https://upload.wikimedia.org/wikipedia/fr/thumb/2/22/M6_2009.svg/450px-M6_2009.svg.png https://upload.wikimedia.org/wikipedia/commons/thumb/e/e3/Canal_News_logo.svg/685px-Canal_News_logo.svg.png http://www.katsomo.fi/multimedia/template/logos/katsomo_logo_2.gif https://upload.wikimedia.org/wikipedia/fr/thumb/7/77/TF1_ http://api.mpora.com/tv/player/load/vid |
自研引擎-A |
https://github.com/bluefireteam/audioplayers/blob/main/troubleshooting.md |
i2/x.java |
https://github.com/baseflow/flutter-permission-handler/issues |
K0/t.java |
https://github.com/bluefireteam/audioplayers/blob/main/troubleshooting.md |
h2/m.java |
https://accounts.google.com/o/oauth2/revoke?token= |
s0/f.java |
https://plus.google.com/ |
X0/o0.java |
https://api.flutter.dev/flutter/material/scaffold/of.html |
lib/arm64-v8a/libapp.so |
127.0.0.1 1.2.0.4 |
lib/arm64-v8a/libnetshield.so |
Firebase配置检测
邮箱地址提取
第三方追踪器
名称 | 类别 | 网址 |
---|
敏感凭证泄露
服务列表
广播接收者列表
显示 1 个 receivers
内容提供者列表
第三方SDK
SDK名称 | 开发者 | 描述信息 |
---|---|---|
Flutter | Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 | |
C++ 共享库 | Android | 在 Android 应用中运行原生代码。 |
Jetpack DataStore | Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。 | |
LibVLC | VideoLAN | VLC 是一款免费、自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及各类流媒体协议。 |
Google Sign-In | 提供使用 Google 登录的 API。 | |
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 ProfileInstaller | 让库能够提前预填充要由 ART 读取的编译轨迹。 |
污点分析
当apk较大时,代码量会很大,造成数据流图(ICFG)呈现爆炸式增长,所以该功能比较耗时,请先喝杯咖啡,耐心等待……规则名称 | 描述信息 | 操作 |
---|---|---|
病毒分析 | 使用安卓恶意软件常用的API进行污点分析 | 开始分析 |
漏洞挖掘 | 漏洞挖掘场景下的污点分析 | 开始分析 |
隐私合规 | 隐私合规场景下的污点分析:组件内污点传播、组件间污点传播、组件与库函数之间的污点传播 | 开始分析 |
密码分析 | 分析加密算法是否使用常量密钥、静态初始化的向量(IV)、加密模式是否使用ECB等 | 开始分析 |
Callback | 因为Android中系统级的Callback并不会出现显式地进行回调方法的调用,所以如果需要分析Callback方法需要在声明文件中将其声明,这里提供一份AndroidCallbacks.txt文件,里面是一些常见的原生回调接口或类,如果有特殊接口需求,可以联系管理员 | 开始分析 |