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

应用图标

文件基本信息

文件名称
clash-for-android-2.4.9.apk
文件大小
28.21MB
MD5
48e0e98d9192c349bfb16054c03589ef
SHA1
e565bd83ee861514e21c18e152c3e78db52d93ce
SHA256
ab2fd7b535a9ba4da8482094239404820193fe49daf6a04ef8caf376ff764efe
病毒检测
文件安全

应用基础信息

应用名称
Clash
包名
com.github.kr328.clash
主活动
com.github.kr328.clash.MainActivity
目标SDK
30
最小SDK
21
版本号
2.4.9.
子版本号
204009
加固信息
未加壳
开发框架
Java/Kotlin

反编译与源码导出

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

文件结构与资源列表

    应用签名证书信息

    二进制文件已签名
    v1 签名: True
    v2 签名: True
    v3 签名: False
    v4 签名: False
    主题: CN=Clash for Android
    签名算法: rsassa_pkcs1v15
    有效期自: 2019-12-06 22:05:42+00:00
    有效期至: 2044-11-29 22:05:42+00:00
    发行人: CN=Clash for Android
    序列号: 0x1e3f5fe7
    哈希算法: sha256
    证书MD5: c6111278e2d7318e92bb3d939d86dbc2
    证书SHA1: a7459675c525590c635a23514ae8b41ace46a4c2
    证书SHA256: c75ca7a8a2a8e5a45612aece7f572d4e23961778ef6ccd623144fd0016588af0
    证书SHA512: 2215597bd4653a3e2007fb56525a4a9a0806db53066948a4f25ac027b9e8f4967b3fdd9b65c5747e19601f1e99768a523a98c51ce2912588d15b469d6ff14bbb
    公钥算法: rsa
    密钥长度: 2048
    指纹: b2ceb146f88cc4b83a219fdf21d129e6bd555765e21f7aee5b10627b9b05a4ac
    找到 1 个唯一证书

    权限声明与风险分级

    权限名称 安全等级 权限内容 权限描述 关联代码
    android.permission.RECEIVE_BOOT_COMPLETED 普通 开机自启 允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。
    android.permission.FOREGROUND_SERVICE 普通 创建前台Service Android 9.0以上允许常规应用程序使用 Service.startForeground,用于podcast播放(推送悬浮播放,锁屏播放)
    android.permission.READ_EXTERNAL_STORAGE 危险 读取SD卡内容 允许应用程序从SD卡读取信息。
    android.permission.QUERY_ALL_PACKAGES 普通 获取已安装应用程序列表 Android 11引入与包可见性相关的权限,允许查询设备上的任何普通应用程序,而不考虑清单声明。
    android.permission.ACCESS_NETWORK_STATE 普通 获取网络状态 允许应用程序查看所有网络的状态。
    android.permission.CHANGE_NETWORK_STATE 危险 改变网络连通性 允许应用程序改变网络连通性。
    android.permission.INTERNET 危险 完全互联网访问 允许应用程序创建网络套接字。
    com.github.kr328.clash.permission.RECEIVE_BROADCASTS 未知 未知权限 来自 android 引用的未知权限。

    证书安全合规分析

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

    Manifest 配置安全分析

    高危
    0
    警告
    5
    信息
    0
    屏蔽
    0
    序号 问题 严重程度 描述信息 操作
    1 应用程序具有网络安全配置
    [android:networkSecurityConfig=@xml/network_security_config]
    信息 网络安全配置功能让应用程序可以在一个安全的,声明式的配置文件中自定义他们的网络安全设置,而不需要修改应用程序代码。这些设置可以针对特定的域名和特定的应用程序进行配置。
    2 应用程序数据可以被备份
    [android:allowBackup=true]
    警告 这个标志允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。
    3 Activity (com.github.kr328.clash.ExternalImportActivity) 未被保护。
    [android:exported=true]
    警告 发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。
    4 Service (com.github.kr328.clash.TileService) 受权限保护, 但是应该检查权限的保护级别。
    Permission: android.permission.BIND_QUICK_SETTINGS_TILE
    [android:exported=true]
    警告 发现一个 Service被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。
    5 Broadcast Receiver (com.github.kr328.clash.RestartReceiver) 未被保护。
    [android:exported=true]
    警告 发现 Broadcast Receiver与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。
    6 Content Provider (com.github.kr328.clash.service.FilesProvider) 受权限保护, 但是应该检查权限的保护级别。
    Permission: android.permission.MANAGE_DOCUMENTS
    [android:exported=true]
    警告 发现一个 Content Provider被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

    可浏览 Activity 组件分析

    ACTIVITY INTENT
    com.github.kr328.clash.ExternalImportActivity Schemes: clash://,
    Hosts: install-config,

    网络通信安全风险分析

    高危
    1
    警告
    1
    信息
    0
    安全
    0
    序号 范围 严重级别 描述
    1 *
    警告 基本配置配置为信任系统证书。
    2 *
    高危 基本配置配置为信任用户安装的证书。

    API调用分析

    API功能 源码文件
    一般功能-> 文件操作
    com/github/kr328/clash/LogsActivity$main$2$1$files$1.java
    com/github/kr328/clash/common/store/SharedPreferenceProvider.java
    com/github/kr328/clash/core/Clash.java
    com/github/kr328/clash/core/bridge/Bridge.java
    com/github/kr328/clash/core/bridge/Content.java
    com/github/kr328/clash/design/dialog/InputKt.java
    com/github/kr328/clash/design/store/UiStore.java
    com/github/kr328/clash/log/LogcatFilter.java
    com/github/kr328/clash/log/LogcatWriter.java
    com/github/kr328/clash/log/SystemLogcat.java
    com/github/kr328/clash/remote/FilesClient$list$2.java
    com/github/kr328/clash/service/FilesProvider$deleteDocument$1.java
    com/github/kr328/clash/service/FilesProvider$openDocument$1.java
    com/github/kr328/clash/service/FilesProvider$renameDocument$1.java
    com/github/kr328/clash/service/ProfileManager.java
    com/github/kr328/clash/service/StatusProvider.java
    com/github/kr328/clash/service/document/FileDocument.java
    com/github/kr328/clash/service/remote/IProfileManagerDelegate.java
    com/github/kr328/clash/service/store/ServiceStore.java
    com/github/kr328/clash/store/AppStore.java
    com/github/kr328/clash/store/TipsStore.java
    com/github/kr328/clash/util/ContentKt$copyContentTo$2.java
    com/microsoft/appcenter/AppCenter.java
    com/microsoft/appcenter/DependencyConfiguration.java
    com/microsoft/appcenter/channel/DefaultChannel.java
    com/microsoft/appcenter/crashes/Crashes.java
    com/microsoft/appcenter/crashes/UncaughtExceptionHandler.java
    com/microsoft/appcenter/crashes/WrapperSdkExceptionManager.java
    com/microsoft/appcenter/crashes/utils/ErrorLogHelper.java
    com/microsoft/appcenter/http/DefaultHttpClientCallTask.java
    com/microsoft/appcenter/http/HttpClient.java
    com/microsoft/appcenter/http/HttpClientDecorator.java
    com/microsoft/appcenter/http/HttpClientNetworkStateHandler.java
    com/microsoft/appcenter/http/HttpException.java
    com/microsoft/appcenter/http/HttpUtils.java
    com/microsoft/appcenter/http/TLS1_2SocketFactory.java
    com/microsoft/appcenter/ingestion/AbstractAppCenterIngestion.java
    com/microsoft/appcenter/ingestion/Ingestion.java
    com/microsoft/appcenter/persistence/DatabasePersistence.java
    com/microsoft/appcenter/persistence/Persistence.java
    com/microsoft/appcenter/utils/NetworkStateHelper.java
    com/microsoft/appcenter/utils/context/SessionContext.java
    com/microsoft/appcenter/utils/storage/DatabaseManager.java
    com/microsoft/appcenter/utils/storage/FileManager.java
    com/microsoft/appcenter/utils/storage/SharedPreferencesManager.java
    rikka/preference/MultiProcessPreference.java
    rikka/preference/PreferenceProvider.java
    一般功能-> IPC通信
    com/github/kr328/clash/ExternalImportActivity$onCreate$1.java
    com/github/kr328/clash/ExternalImportActivity.java
    com/github/kr328/clash/LogcatActivity$mainStreaming$2$2.java
    com/github/kr328/clash/LogcatActivity.java
    com/github/kr328/clash/LogcatService$startObserver$1.java
    com/github/kr328/clash/LogcatService.java
    com/github/kr328/clash/LogsActivity$main$2$2.java
    com/github/kr328/clash/MainApplication.java
    com/github/kr328/clash/NetworkSettingsActivity$main$2$2.java
    com/github/kr328/clash/NewProfileActivity$main$2$2.java
    com/github/kr328/clash/NewProfileActivity$queryProfileProviders$2.java
    com/github/kr328/clash/ProfilesActivity$main$2$2.java
    com/github/kr328/clash/PropertiesActivity$main$3$2.java
    com/github/kr328/clash/ProvidersActivity$main$2$1.java
    com/github/kr328/clash/ProxyActivity$main$3$1.java
    com/github/kr328/clash/RestartReceiver.java
    com/github/kr328/clash/SettingsActivity$main$2$2.java
    com/github/kr328/clash/TileService.java
    com/github/kr328/clash/common/constants/Intents.java
    com/github/kr328/clash/design/dialog/InputKt.java
    com/github/kr328/clash/design/model/ProfileProvider.java
    com/github/kr328/clash/remote/Broadcasts.java
    com/github/kr328/clash/remote/Remote.java
    com/github/kr328/clash/remote/Service.java
    com/github/kr328/clash/service/ClashManager.java
    com/github/kr328/clash/service/ClashService.java
    com/github/kr328/clash/service/ProfileReceiver$onReceive$1.java
    com/github/kr328/clash/service/ProfileReceiver.java
    com/github/kr328/clash/service/ProfileWorker.java
    com/github/kr328/clash/service/RemoteService.java
    com/github/kr328/clash/service/TunService.java
    com/github/kr328/clash/service/clash/module/ConfigurationModule$run$changed$1$1.java
    com/github/kr328/clash/service/clash/module/DynamicNotificationModule$run$2$1$1.java
    com/github/kr328/clash/service/clash/module/DynamicNotificationModule$run$2$1$2.java
    com/github/kr328/clash/service/clash/module/DynamicNotificationModule$run$2.java
    com/github/kr328/clash/service/clash/module/DynamicNotificationModule.java
    com/github/kr328/clash/service/clash/module/Module.java
    com/github/kr328/clash/service/clash/module/SideloadDatabaseModule$run$2$1.java
    com/github/kr328/clash/service/clash/module/SideloadDatabaseModule$run$2$2.java
    com/github/kr328/clash/service/clash/module/StaticNotificationModule.java
    com/github/kr328/clash/service/remote/IClashManagerDelegate.java
    com/github/kr328/clash/service/remote/IClashManagerProxy.java
    com/github/kr328/clash/service/remote/IFetchObserverProxy.java
    com/github/kr328/clash/service/remote/ILogObserverProxy.java
    com/github/kr328/clash/service/remote/IProfileManagerDelegate.java
    com/github/kr328/clash/service/remote/IProfileManagerProxy.java
    com/github/kr328/clash/service/remote/IRemoteServiceDelegate.java
    com/github/kr328/clash/service/remote/IRemoteServiceProxy.java
    com/github/kr328/kaidl/SuspendTransactionKt$suspendTransaction$job$1.java
    rikka/preference/IMultiProcessPreferenceChangeListener.java
    一般功能-> 获取系统服务(getSystemService)
    组件-> ContentProvider com/github/kr328/clash/service/StatusProvider.java
    rikka/preference/PreferenceProvider.java
    加密解密-> Crypto加解密组件 com/microsoft/appcenter/utils/crypto/CryptoAesHandler.java
    com/microsoft/appcenter/utils/crypto/CryptoUtils.java
    组件-> 启动 Activity
    网络通信-> URLConnection com/microsoft/appcenter/http/DefaultHttpClientCallTask.java
    网络通信-> HTTPS建立连接 com/microsoft/appcenter/http/DefaultHttpClientCallTask.java
    com/microsoft/appcenter/http/TLS1_2SocketFactory.java
    加密解密-> Base64 加密 com/microsoft/appcenter/crashes/ingestion/models/ErrorAttachmentLog.java
    com/microsoft/appcenter/utils/crypto/CryptoUtils.java
    加密解密-> Base64 解密 com/microsoft/appcenter/crashes/ingestion/models/ErrorAttachmentLog.java
    com/microsoft/appcenter/utils/crypto/CryptoUtils.java
    组件-> 启动 Service
    调用java反射机制 com/github/kr328/clash/service/data/Database.java
    com/microsoft/appcenter/utils/InstrumentationRegistryHelper.java
    隐私数据-> 获取已安装的应用程序 com/github/kr328/clash/AccessControlActivity$loadApps$2.java
    com/github/kr328/clash/NewProfileActivity$queryProfileProviders$2.java
    com/github/kr328/clash/OverrideSettingsActivity$main$3$2.java
    隐私数据-> 剪贴板数据读写操作 com/github/kr328/clash/AccessControlActivity$main$3$2.java
    com/github/kr328/clash/design/LogcatDesign.java
    进程操作-> 杀死进程 com/microsoft/appcenter/UncaughtExceptionHandler.java
    com/microsoft/appcenter/crashes/UncaughtExceptionHandler.java
    进程操作-> 获取进程pid com/microsoft/appcenter/UncaughtExceptionHandler.java
    com/microsoft/appcenter/crashes/UncaughtExceptionHandler.java
    一般功能-> 加载so文件 com/github/kr328/clash/core/bridge/Bridge.java
    一般功能-> PowerManager操作 com/github/kr328/clash/service/clash/module/DynamicNotificationModule$run$2.java
    命令执行-> getRuntime.exec() com/github/kr328/clash/log/SystemLogcat.java
    网络通信-> TCP套接字 com/microsoft/appcenter/http/HttpUtils.java
    com/microsoft/appcenter/http/TLS1_2SocketFactory.java
    网络通信-> SSL证书处理 com/microsoft/appcenter/http/TLS1_2SocketFactory.java
    组件-> 发送广播 com/github/kr328/clash/design/dialog/InputKt.java

    安全漏洞检测

    高危
    0
    警告
    4
    信息
    3
    安全
    0
    屏蔽
    0
    序号 问题 等级 参考标准 文件位置 操作
    1 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等 警告 CWE: CWE-312: 明文存储敏感信息
    OWASP Top 10: M9: Reverse Engineering
    OWASP MASVS: MSTG-STORAGE-14
    升级会员:解锁高级权限
    2 应用程序记录日志信息,不得记录敏感信息 信息 CWE: CWE-532: 通过日志文件的信息暴露
    OWASP MASVS: MSTG-STORAGE-3
    升级会员:解锁高级权限
    3 IP地址泄露 警告 CWE: CWE-200: 信息泄露
    OWASP MASVS: MSTG-CODE-2
    升级会员:解锁高级权限
    4 应用程序使用不安全的随机数生成器 警告 CWE: CWE-330: 使用不充分的随机数
    OWASP Top 10: M5: Insufficient Cryptography
    OWASP MASVS: MSTG-CRYPTO-6
    升级会员:解锁高级权限
    5 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它 信息
    OWASP MASVS: MSTG-STORAGE-10
    升级会员:解锁高级权限
    6 此应用程序使用SQL Cipher,确保密钥没有硬编码在代码中 信息
    OWASP MASVS: MSTG-CRYPTO-1
    升级会员:解锁高级权限
    7 应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库 警告 CWE: CWE-89: SQL命令中使用的特殊元素转义处理不恰当('SQL 注入')
    OWASP Top 10: M7: Client Code Quality
    升级会员:解锁高级权限

    Native库安全分析

    序号 动态库 NX(堆栈禁止执行) PIE STACK CANARY(栈保护) RELRO RPATH(指定SO搜索路径) RUNPATH(指定SO搜索路径) FORTIFY(常用函数加强检查) SYMBOLS STRIPPED(裁剪符号表)
    1 arm64-v8a/libbridge.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
    False
    warning
    二进制文件没有任何加固函数。加固函数提供了针对 glibc 的常见不安全函数(如 strcpy,gets 等)的缓冲区溢出检查。使用编译选项 -D_FORTIFY_SOURCE=2 来加固函数。这个检查对于 Dart/Flutter 库不适用
    True
    info
    符号被剥离

    文件分析

    序号 问题 文件

    行为分析

    编号 行为 标签 文件
    00022 从给定的文件绝对路径打开文件 文件
    升级会员:解锁高级权限
    00094 连接到 URL 并从中读取数据 命令
    网络
    升级会员:解锁高级权限
    00078 获取网络运营商名称 信息收集
    电话服务
    升级会员:解锁高级权限
    00132 查询ISO国家代码 电话服务
    信息收集
    升级会员:解锁高级权限

    敏感权限分析

    恶意软件常用权限 1/30
    android.permission.RECEIVE_BOOT_COMPLETED
    其它常用权限 5/46
    android.permission.FOREGROUND_SERVICE
    android.permission.READ_EXTERNAL_STORAGE
    android.permission.ACCESS_NETWORK_STATE
    android.permission.CHANGE_NETWORK_STATE
    android.permission.INTERNET

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

    IP地理位置

    恶意域名检测

    域名 状态 中国境内 位置信息 解析
    mobile.events.data.microsoft.com 安全
    IP地址: 20.42.73.24
    国家: 美国
    地区: 弗吉尼亚州
    城市: 华盛顿
    查看: Google 地图

    donate.kr328.app 安全
    没有可用的地理位置信息。
    in.appcenter.ms 安全
    IP地址: 52.247.72.241
    国家: 美国
    地区: 弗吉尼亚州
    城市: 博伊顿
    查看: Google 地图

    手机号提取

    URL链接分析

    URL信息 源码文件
    https://in.appcenter.ms
    com/microsoft/appcenter/ingestion/AppCenterIngestion.java
    https://mobile.events.data.microsoft.com/onecollector/1.0
    com/microsoft/appcenter/ingestion/OneCollectorIngestion.java
    172.19.0.1
    172.19.0.2
    com/github/kr328/clash/service/TunService.java
    https://github.com/kr328/clashforandroid/issues
    https://play.google.com/store/apps/details?id=com.github.kr328.clash
    https://github.com/dreamacro/clash/wiki
    https://donate.kr328.app
    https://github.com/dreamacro/clash
    https://github.com/kr328/clashforandroid
    https://github.com/kr328/clashforandroid/releases
    自研引擎-S

    Firebase配置检测

    邮箱地址提取

    第三方追踪器

    名称 类别 网址
    Microsoft Visual Studio App Center Analytics Analytics https://reports.exodus-privacy.eu.org/trackers/243
    Microsoft Visual Studio App Center Crashes Crash reporting https://reports.exodus-privacy.eu.org/trackers/238

    敏感凭证泄露

    已显示 4 个secrets
    1、 "key" : "Key"
    2、 344f4abf0a10cb27a43e94dd31b449c9
    3、 d5d1fcf8-45b8-4531-bf25-d12262913268
    4、 08c06d320345bb682d17f10faa6f9e6f

    字符串信息

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

    第三方SDK

    SDK名称 开发者 描述信息
    Clash Core Dreamacro A rule-based tunnel in Go.
    Jetpack Room Google Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。

    污点分析

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