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

应用图标

文件基本信息

文件名称
Spowlo v1.5.3.apk
文件大小
60.0MB
MD5
affaf7764ae7e2c2e1bd190f4ed91503
SHA1
0a8abe0c6b39b15fc4b878229eea91e6409653af
SHA256
c629ef395125c4698dc656cbb93d4e9890e1f3d313cd35fe0b32a27a12a257dc

应用基础信息

应用名称
Spowlo
包名
com.bobbyesp.spowlo
主活动
com.bobbyesp.spowlo.MainActivity
目标SDK
35
最小SDK
26
版本号
1.5.3
子版本号
1050300
加固信息
未加壳
开发框架
Java/Kotlin

反编译与源码导出

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

文件结构与资源列表

    应用签名证书信息

    二进制文件已签名
    v1 签名: False
    v2 签名: True
    v3 签名: True
    v4 签名: False
    主题: C=VN, ST=HN, L=XD, O=LX, OU=Tool Shells, CN=Kakathic
    签名算法: rsassa_pkcs1v15
    有效期自: 2022-02-06 05:29:14+00:00
    有效期至: 2044-02-01 05:29:14+00:00
    发行人: C=VN, ST=HN, L=XD, O=LX, OU=Tool Shells, CN=Kakathic
    序列号: 0x7eb1f1bd
    哈希算法: sha256
    证书MD5: b49e3d1b2e3711595fd0c438a768ff0c
    证书SHA1: 35f32e32a5be61c1a8f2ba8b8ab2140b5c2a6ef1
    证书SHA256: 646930e56de9c6397ea7acfa31cbb8765599149419620ca0d5d3c9f5d54dd66e
    证书SHA512: b98f80b2c5a1c7cc180a23830c94255e3633e791518d756723688b625d784f550a54613e6c066894950d452958e30680e2342305bbe033dc881e0616f936023f
    公钥算法: rsa
    密钥长度: 2048
    指纹: f58118e6089b43fe45befe5edaadf91aaa6325a7150702b063d90afb4a10525b
    找到 1 个唯一证书

    权限声明与风险分级

    权限名称 安全等级 权限内容 权限描述 关联代码
    android.permission.ACCESS_NETWORK_STATE 普通 获取网络状态 允许应用程序查看所有网络的状态。
    android.permission.WRITE_EXTERNAL_STORAGE 危险 读取/修改/删除外部存储内容 允许应用程序写入外部存储。
    android.permission.INTERNET 危险 完全互联网访问 允许应用程序创建网络套接字。
    android.permission.FOREGROUND_SERVICE 普通 创建前台Service Android 9.0以上允许常规应用程序使用 Service.startForeground,用于podcast播放(推送悬浮播放,锁屏播放)
    android.permission.POST_NOTIFICATIONS 危险 发送通知的运行时权限 允许应用发布通知,Android 13 引入的新权限。
    android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 普通 使用 Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 的权限 应用程序必须拥有权限才能使用 Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS。
    android.permission.REQUEST_INSTALL_PACKAGES 危险 允许安装应用程序 Android8.0 以上系统允许安装未知来源应用程序权限。
    android.permission.MANAGE_EXTERNAL_STORAGE 危险 文件列表访问权限 Android11新增权限,读取本地文件,如简历,聊天图片。
    android.permission.FOREGROUND_SERVICE_DATA_SYNC 普通 允许前台服务进行数据同步 允许常规应用程序使用类型为“dataSync”的 Service.startForeground。
    com.bobbyesp.spowlo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION 未知 未知权限 来自 android 引用的未知权限。

    证书安全合规分析

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

    Manifest 配置安全分析

    高危
    0
    警告
    2
    信息
    0
    屏蔽
    0
    序号 问题 严重程度 描述信息 操作
    1 应用程序数据可以被备份
    [android:allowBackup=true]
    警告 这个标志允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。
    2 Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护, 但是应该检查权限的保护级别。
    Permission: android.permission.DUMP
    [android:exported=true]
    警告 发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

    可浏览 Activity 组件分析

    ACTIVITY INTENT
    com.bobbyesp.spowlo.MainActivity Schemes: http://, https://,
    Mime Types: text/plain, text/html, application/xhtml+xml, application/vnd.wap.xhtml+xml,

    网络通信安全风险分析

    序号 范围 严重级别 描述

    API调用分析

    API功能 源码文件
    一般功能-> 文件操作
    coil/RealImageLoader.java
    coil/decode/BitmapFactoryDecoder.java
    coil/decode/ExifInterfaceInputStream.java
    coil/decode/FileImageSource.java
    coil/decode/ImageSource.java
    coil/decode/ImageSources.java
    coil/decode/SourceImageSource.java
    coil/disk/DiskCache.java
    coil/disk/DiskLruCache$launchCleanup$1.java
    coil/disk/DiskLruCache.java
    coil/disk/FaultHidingSink.java
    coil/fetch/ContentUriFetcher.java
    coil/fetch/FileFetcher.java
    coil/fetch/HttpUriFetcher.java
    coil/key/FileKeyer.java
    coil/map/FileUriMapper.java
    coil/util/ContinuationCallback.java
    coil/util/DebugLogger.java
    coil/util/FileDescriptorCounter.java
    coil/util/FileSystems.java
    coil/util/Utils.java
    com/bobbyesp/ffmpeg/FFmpeg.java
    com/bobbyesp/library/SpotDL.java
    com/bobbyesp/library/SpotDLCore.java
    com/bobbyesp/library/data/local/streams/StreamGobbler.java
    com/bobbyesp/library/data/local/streams/StreamProcessExtractor.java
    com/bobbyesp/library/data/remote/SpotDLUpdater.java
    com/bobbyesp/spotdl_common/SharedPreferencesHelper.java
    com/bobbyesp/spotdl_common/data/remote/FileDownloader$downloadFileWithProgress$2.java
    com/bobbyesp/spotdl_common/data/remote/FileDownloader.java
    com/bobbyesp/spotdl_common/data/remote/dependencies/DependenciesDownloaderImpl$downloadFFmpeg$tempFile$1.java
    com/bobbyesp/spotdl_common/data/remote/dependencies/DependenciesDownloaderImpl$downloadPython$tempFile$1.java
    com/bobbyesp/spotdl_common/utils/ZipUtils.java
    com/bobbyesp/spotdl_common/utils/dependencies/DependenciesUtil.java
    com/bobbyesp/spotdl_common/utils/files/FilesUtil.java
    com/bobbyesp/spowlo/App.java
    com/bobbyesp/spowlo/CrashHandlerActivity$onCreate$2$1$1$1$1.java
    com/bobbyesp/spowlo/ui/pages/MarkdownViewerPageKt.java
    com/bobbyesp/spowlo/utils/FilesUtil.java
    com/bobbyesp/spowlo/utils/UpdateUtil$downloadApk$2.java
    com/bobbyesp/spowlo/utils/UpdateUtil$downloadFileWithProgress$1.java
    com/bobbyesp/spowlo/utils/UpdateUtil.java
    com/soywiz/klock/Date.java
    com/soywiz/klock/DateTime.java
    com/soywiz/klock/DateTimeRange.java
    com/soywiz/klock/DateTimeRangeSet.java
    com/soywiz/klock/DateTimeSpan.java
    com/soywiz/klock/DateTimeTz.java
    com/soywiz/klock/DayOfWeek.java
    com/soywiz/klock/Month.java
    com/soywiz/klock/MonthSpan.java
    com/soywiz/klock/PatternDateFormat.java
    com/soywiz/klock/PatternTimeFormat.java
    com/soywiz/klock/Time.java
    com/soywiz/klock/TimeSpan.java
    com/soywiz/klock/TimezoneNames.java
    com/soywiz/klock/TimezoneOffset.java
    com/soywiz/klock/Year.java
    com/soywiz/klock/YearMonth.java
    com/soywiz/klock/wrapped/WDate.java
    com/soywiz/klock/wrapped/WDateTime.java
    com/soywiz/klock/wrapped/WMonthSpan.java
    com/soywiz/klock/wrapped/WTime.java
    com/soywiz/klock/wrapped/WTimeSpan.java
    com/soywiz/klock/wrapped/WTimezoneOffset.java
    com/soywiz/klock/wrapped/WYear.java
    com/soywiz/klock/wrapped/WYearMonth.java
    com/soywiz/korio/file/PathInfoAndroidKt.java
    com/soywiz/korio/file/VfsProcessException.java
    com/soywiz/korio/file/std/AsynchronousFileChannelVfs$openAsynchronousFileChannel$2.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm$chmod$2.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm$open$2$getLength$2.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm$open$2$read$2.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm$open$2$setLength$2.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm$open$2$write$2.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm$open$raf$1.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm$setSize$2.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm$stat$2.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm$watch$2.java
    com/soywiz/korio/file/std/BaseLocalVfsJvm.java
    com/soywiz/korio/file/std/EmptyVfs.java
    com/soywiz/korio/file/std/MountableVfs.java
    com/soywiz/korio/file/std/NodeVfs.java
    com/soywiz/korio/file/std/VfsAndroidKt.java
    com/soywiz/korio/file/sync/PlatformSyncIOKt.java
    com/soywiz/korio/lang/FileAlreadyExistsException.java
    com/soywiz/korio/net/JvmAsyncClient$close$2.java
    com/soywiz/korio/net/JvmAsyncClient$read$2.java
    com/soywiz/korio/net/JvmAsyncClient$write$2.java
    com/soywiz/korio/net/JvmAsyncClient.java
    com/soywiz/korio/net/http/Http.java
    com/soywiz/korio/net/http/HttpPortableServer$handleWebsocket$2$send$1.java
    com/soywiz/korio/net/http/HttpPortableServer$handleWebsocket$2.java
    com/soywiz/korio/net/http/HttpServer.java
    com/soywiz/korio/net/ws/WebSocketException.java
    com/soywiz/korio/serialization/json/Json.java
    com/soywiz/krypto/PRNGFixes.java
    com/spotify/sdk/android/auth/app/SpotifyNativeAuthUtil.java
    dagger/hilt/android/internal/lifecycle/HiltViewModelFactory.java
    io/ktor/client/HttpClient.java
    io/ktor/client/content/LocalFileContent.java
    io/ktor/client/content/LocalFileContentKt.java
    io/ktor/client/engine/HttpClientEngine.java
    io/ktor/client/engine/HttpClientEngineBaseKt.java
    io/ktor/client/engine/android/AndroidURLConnectionUtilsKt.java
    io/ktor/client/engine/okhttp/OkHttpCallback.java
    io/ktor/client/engine/okhttp/OkHttpEngine.java
    io/ktor/client/engine/okhttp/OkHttpEngineKt$toChannel$1.java
    io/ktor/client/engine/okhttp/OkUtilsKt.java
    io/ktor/client/plugins/DefaultTransformersJvmKt$platformResponseDefaultTransformers$1.java
    io/ktor/client/plugins/DefaultTransformersJvmKt.java
    io/ktor/client/plugins/HttpRequestTimeoutException.java
    io/ktor/client/plugins/api/ClientPluginInstance.java
    io/ktor/client/plugins/cache/storage/FileCacheStorage.java
    io/ktor/client/plugins/cache/storage/FileCacheStorageKt.java
    io/ktor/client/plugins/contentnegotiation/DefaultIgnoredTypesJvmKt.java
    io/ktor/client/plugins/cookies/CookiesStorage.java
    io/ktor/client/plugins/cookies/HttpCookies.java
    io/ktor/http/FileContentTypeJvmKt.java
    io/ktor/http/content/MultipartJvmKt.java
    io/ktor/http/content/OutputStreamContent$writeTo$2.java
    io/ktor/http/content/OutputStreamContent.java
    io/ktor/http/content/URIFileContent.java
    io/ktor/http/content/WriterContent$writeTo$2.java
    io/ktor/http/content/WriterContent.java
    io/ktor/util/InputJvmKt.java
    io/ktor/util/NioPathKt.java
    io/ktor/util/PathKt.java
    io/ktor/util/cio/ChannelIOException.java
    io/ktor/util/cio/FileChannelsAtNioPathKt.java
    io/ktor/util/cio/FileChannelsKt$readChannel$1.java
    io/ktor/util/cio/FileChannelsKt$writeChannel$1.java
    io/ktor/util/cio/FileChannelsKt.java
    io/ktor/util/cio/InputStreamAdaptersKt$toByteReadChannel$1.java
    io/ktor/util/cio/InputStreamAdaptersKt.java
    io/ktor/util/cio/OutputStreamAdaptersKt.java
    io/ktor/utils/io/ByteBufferChannel.java
    io/ktor/utils/io/ByteChannelSequentialBase.java
    io/ktor/utils/io/ByteChannelSequentialJVM.java
    io/ktor/utils/io/ByteReadChannelKt.java
    io/ktor/utils/io/DelimitedKt$skipDelimiterSuspend$2.java
    io/ktor/utils/io/DelimitedKt.java
    io/ktor/utils/io/charsets/CharsetJVMKt.java
    io/ktor/utils/io/core/Buffer.java
    io/ktor/utils/io/core/BufferCompatibilityKt.java
    io/ktor/utils/io/core/BufferKt.java
    io/ktor/utils/io/core/BufferPrimitivesJvmKt.java
    io/ktor/utils/io/core/BufferPrimitivesKt.java
    io/ktor/utils/io/core/BufferUtilsJvmKt.java
    io/ktor/utils/io/core/ByteBuffersKt.java
    io/ktor/utils/io/core/CloseableKt.java
    io/ktor/utils/io/core/Input.java
    io/ktor/utils/io/core/InputKt.java
    io/ktor/utils/io/core/Output.java
    io/ktor/utils/io/core/StringsKt.java
    io/ktor/utils/io/core/internal/UTF8Kt.java
    io/ktor/utils/io/jvm/javaio/BlockingKt.java
    io/ktor/utils/io/jvm/javaio/InputAdapter.java
    io/ktor/utils/io/jvm/javaio/OutputAdapter.java
    io/ktor/utils/io/jvm/javaio/ReadingKt$toByteReadChannel$1.java
    io/ktor/utils/io/jvm/javaio/ReadingKt$toByteReadChannel$2.java
    io/ktor/utils/io/jvm/javaio/ReadingKt.java
    io/ktor/utils/io/jvm/javaio/WritingKt.java
    io/ktor/utils/io/pool/ObjectPool.java
    io/ktor/utils/io/streams/InputKt.java
    io/ktor/utils/io/streams/InputStreamAsInput.java
    io/ktor/utils/io/streams/OutputKt.java
    io/ktor/utils/io/streams/OutputStreamAdapter.java
    io/ktor/utils/io/streams/StreamsKt.java
    io/ktor/websocket/DefaultWebSocketSessionImpl$runOrCancelPinger$newPinger$1.java
    io/noties/markwon/html/AppendableUtils.java
    io/noties/markwon/html/jsoup/UncheckedIOException.java
    io/noties/markwon/html/jsoup/parser/CharacterReader.java
    java9/util/ColSer.java
    java9/util/Comparators$$ExternalSyntheticLambda0.java
    java9/util/Comparators$$ExternalSyntheticLambda1.java
    java9/util/Comparators$$ExternalSyntheticLambda2.java
    java9/util/Comparators$$ExternalSyntheticLambda3.java
    java9/util/Comparators$$ExternalSyntheticLambda4.java
    java9/util/Comparators$$ExternalSyntheticLambda5.java
    java9/util/Comparators.java
    java9/util/ImmutableCollections.java
    java9/util/Maps$Entry$$ExternalSyntheticLambda0.java
    java9/util/Maps$Entry$$ExternalSyntheticLambda1.java
    java9/util/Maps$Entry$$ExternalSyntheticLambda2.java
    java9/util/Maps$Entry$$ExternalSyntheticLambda3.java
    java9/util/concurrent/ForkJoinTask.java
    java9/util/concurrent/ThreadLocalRandom.java
    org/commonmark/internal/DocumentParser.java
    org/commonmark/internal/util/Html5Entities.java
    org/commonmark/parser/Parser.java
    org/commonmark/renderer/html/HtmlWriter.java
    org/commonmark/renderer/text/TextContentWriter.java
    网络通信-> OkHttpClient Connection
    组件-> 启动 Activity
    一般功能-> IPC通信
    com/adamratzman/spotify/auth/implicit/AbstractSpotifyAppCompatImplicitLoginActivity.java
    com/adamratzman/spotify/auth/implicit/AbstractSpotifyAppImplicitLoginActivity.java
    com/adamratzman/spotify/auth/implicit/ImplicitAuthUtilsKt.java
    com/adamratzman/spotify/auth/implicit/SpotifyImplicitLoginActivity.java
    com/adamratzman/spotify/auth/pkce/AbstractSpotifyPkceLoginActivity$onResume$1.java
    com/adamratzman/spotify/auth/pkce/AbstractSpotifyPkceLoginActivity.java
    com/adamratzman/spotify/auth/pkce/PkceAuthUtilsKt.java
    com/adamratzman/spotify/notifications/AbstractSpotifyBroadcastReceiver.java
    com/adamratzman/spotify/notifications/SpotifyBroadcastReceiverUtilsKt.java
    com/bobbyesp/spowlo/App.java
    com/bobbyesp/spowlo/CrashHandlerActivity.java
    com/bobbyesp/spowlo/Downloader.java
    com/bobbyesp/spowlo/DownloaderKeepUpService.java
    com/bobbyesp/spowlo/MainActivity.java
    com/bobbyesp/spowlo/NotificationActionReceiver.java
    com/bobbyesp/spowlo/ui/pages/downloader/DownloaderViewModel.java
    com/bobbyesp/spowlo/ui/pages/history/DownloadHistoryBottomDrawerKt.java
    com/bobbyesp/spowlo/ui/pages/history/DownloadsHistoryPageKt$DownloadsHistoryPage$5$1$1$3$1$1.java
    com/bobbyesp/spowlo/ui/pages/settings/SettingsPageKt$SettingsPage$2.java
    com/bobbyesp/spowlo/ui/pages/settings/directories/DownloadsDirectoriesPageKt$DownloadsDirectoriesPage$3$1$1$1.java
    com/bobbyesp/spowlo/ui/pages/settings/directories/DownloadsDirectoriesPageKt.java
    com/bobbyesp/spowlo/utils/ChromeCustomTabsUtil.java
    com/bobbyesp/spowlo/utils/FilesUtil.java
    com/bobbyesp/spowlo/utils/NotificationsUtil.java
    com/bobbyesp/spowlo/utils/UpdateUtil.java
    com/soywiz/korma/Korma.java
    com/spotify/sdk/android/auth/AuthorizationClient.java
    com/spotify/sdk/android/auth/IntentExtras.java
    com/spotify/sdk/android/auth/LoginActivity.java
    com/spotify/sdk/android/auth/app/SpotifyNativeAuthUtil.java
    io/noties/markwon/LinkResolverDef.java
    调用java反射机制
    网络通信-> HTTP建立连接 io/ktor/client/engine/android/AndroidClientEngine.java
    io/ktor/client/engine/android/AndroidEngineConfig.java
    io/ktor/client/engine/android/AndroidURLConnectionUtilsKt.java
    网络通信-> TCP套接字
    DEX-> 动态加载 java9/util/concurrent/ForkJoinPool.java
    一般功能-> 获取系统服务(getSystemService)
    网络通信-> TCP服务器套接字 com/soywiz/korio/net/JvmAsyncServer.java
    进程操作-> 获取进程pid com/soywiz/krypto/PRNGFixes.java
    组件-> 启动 Service com/bobbyesp/spowlo/App.java
    com/bobbyesp/spowlo/Downloader.java
    隐私数据-> 剪贴板数据读写操作 com/bobbyesp/spowlo/App.java
    com/bobbyesp/spowlo/utils/GeneralTextUtils.java
    加密解密-> 信息摘要算法
    网络通信-> HTTPS建立连接 com/bobbyesp/spowlo/features/mod_downloader/data/remote/ModsDownloaderAPIService.java
    io/ktor/client/engine/android/AndroidEngineConfig.java
    网络通信-> WebView JavaScript接口 com/bobbyesp/spowlo/ui/pages/settings/cookies/WebViewPageKt$WebViewPage$2.java
    com/spotify/sdk/android/auth/webview/LoginDialog.java
    网络通信-> WebView 相关 com/bobbyesp/spowlo/ui/pages/settings/cookies/WebViewPageKt$WebViewPage$2.java
    com/spotify/sdk/android/auth/webview/LoginDialog.java
    加密解密-> Crypto加解密组件 io/ktor/util/StatelessHmacNonceManager.java
    一般功能-> Android通知 com/bobbyesp/spowlo/utils/NotificationsUtil.java
    网络通信-> SSL证书处理 com/soywiz/korio/net/JvmAsyncClient$connect$2.java
    隐私数据-> 获取已安装的应用程序 com/bobbyesp/spowlo/ui/pages/settings/SettingsPageKt$SettingsPage$2.java
    com/spotify/sdk/android/auth/AuthorizationClient.java
    网络通信-> URLConnection io/ktor/client/engine/android/AndroidClientEngine.java
    一般功能-> 获取活动网路信息 com/bobbyesp/spowlo/utils/PreferencesUtil.java

    安全漏洞检测

    高危
    1
    警告
    7
    信息
    3
    安全
    0
    屏蔽
    0
    序号 问题 等级 参考标准 文件位置 操作
    1 启用了调试配置。生产版本不能是可调试的 高危 CWE: CWE-919: 移动应用程序中的弱点
    OWASP Top 10: M1: Improper Platform Usage
    OWASP MASVS: MSTG-RESILIENCE-2
    升级会员:解锁高级权限
    2 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等 警告 CWE: CWE-312: 明文存储敏感信息
    OWASP Top 10: M9: Reverse Engineering
    OWASP MASVS: MSTG-STORAGE-14
    升级会员:解锁高级权限
    3 应用程序创建临时文件。敏感信息永远不应该被写进临时文件 警告 CWE: CWE-276: 默认权限不正确
    OWASP Top 10: M2: Insecure Data Storage
    OWASP MASVS: MSTG-STORAGE-2
    升级会员:解锁高级权限
    4 应用程序记录日志信息,不得记录敏感信息 信息 CWE: CWE-532: 通过日志文件的信息暴露
    OWASP MASVS: MSTG-STORAGE-3
    升级会员:解锁高级权限
    5 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据 警告 CWE: CWE-276: 默认权限不正确
    OWASP Top 10: M2: Insecure Data Storage
    OWASP MASVS: MSTG-STORAGE-2
    升级会员:解锁高级权限
    6 应用程序可以写入应用程序目录。敏感信息应加密 信息 CWE: CWE-276: 默认权限不正确
    OWASP MASVS: MSTG-STORAGE-14
    升级会员:解锁高级权限
    7 SHA-1是已知存在哈希冲突的弱哈希 警告 CWE: CWE-327: 使用了破损或被认为是不安全的加密算法
    OWASP Top 10: M5: Insufficient Cryptography
    OWASP MASVS: MSTG-CRYPTO-4
    升级会员:解锁高级权限
    8 MD5是已知存在哈希冲突的弱哈希 警告 CWE: CWE-327: 使用了破损或被认为是不安全的加密算法
    OWASP Top 10: M5: Insufficient Cryptography
    OWASP MASVS: MSTG-CRYPTO-4
    升级会员:解锁高级权限
    9 IP地址泄露 警告 CWE: CWE-200: 信息泄露
    OWASP MASVS: MSTG-CODE-2
    升级会员:解锁高级权限
    10 应用程序使用不安全的随机数生成器 警告 CWE: CWE-330: 使用不充分的随机数
    OWASP Top 10: M5: Insufficient Cryptography
    OWASP MASVS: MSTG-CRYPTO-6
    升级会员:解锁高级权限
    11 此应用程序将数据复制到剪贴板。敏感数据不应复制到剪贴板,因为其他应用程序可以访问它 信息
    OWASP MASVS: MSTG-STORAGE-10
    升级会员:解锁高级权限

    Native库安全分析

    序号 动态库 NX(堆栈禁止执行) PIE STACK CANARY(栈保护) RELRO RPATH(指定SO搜索路径) RUNPATH(指定SO搜索路径) FORTIFY(常用函数加强检查) SYMBOLS STRIPPED(裁剪符号表)
    1 arm64-v8a/libffprobe.so
    True
    info
    二进制文件设置了 NX 位。这标志着内存页面不可执行,使得攻击者注入的 shellcode 不可执行。
    地址无关的可执行文件 (PIE)
    info
    共享库是使用 -fPIC 标志构建的,该标志启用与地址无关的代码。这使得面向返回的编程 (ROP) 攻击更难可靠地执行。
    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 库不适用
    True
    info
    符号被剥离

    文件分析

    序号 问题 文件

    行为分析

    编号 行为 标签 文件
    00013 读取文件并将其放入流中 文件
    升级会员:解锁高级权限
    00036 从 res/raw 目录获取资源文件 反射
    升级会员:解锁高级权限
    00022 从给定的文件绝对路径打开文件 文件
    升级会员:解锁高级权限
    00063 隐式意图(查看网页、拨打电话等) 控制
    升级会员:解锁高级权限
    00175 获取通知管理器并取消通知 通知
    升级会员:解锁高级权限
    00051 通过setData隐式意图(查看网页、拨打电话等) 控制
    升级会员:解锁高级权限

    敏感权限分析

    恶意软件常用权限 1/30
    android.permission.REQUEST_INSTALL_PACKAGES
    其它常用权限 5/46
    android.permission.ACCESS_NETWORK_STATE
    android.permission.WRITE_EXTERNAL_STORAGE
    android.permission.INTERNET
    android.permission.FOREGROUND_SERVICE
    android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

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

    IP地理位置

    恶意域名检测

    域名 状态 中国境内 位置信息 解析
    developer.spotify.com 安全
    没有可用的地理位置信息。
    ktor.io 安全
    IP地址: 18.238.192.82
    国家: 美国
    地区: 加利福尼亚
    城市: 旧金山
    查看: Google 地图

    spotify.com 安全
    没有可用的地理位置信息。
    twitter.com 安全
    IP地址: 185.199.109.153
    国家: 美国
    地区: 加利福尼亚
    城市: 旧金山
    查看: Google 地图

    avatars.githubusercontent.com 安全
    IP地址: 31.13.70.36
    国家: 美国
    地区: 宾夕法尼亚
    城市: 加利福尼亚
    查看: Google 地图

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

    i.ibb.co 安全
    IP地址: 108.181.22.211
    国家: 美国
    地区: 加利福尼亚
    城市: 洛杉矶
    查看: Google 地图

    spotdl.github.io 安全
    IP地址: 185.199.109.153
    国家: 美国
    地区: 宾夕法尼亚
    城市: 加利福尼亚
    查看: Google 地图

    foursquare.com 安全
    IP地址: 151.101.195.42
    国家: 美国
    地区: 加利福尼亚
    城市: 旧金山
    查看: Google 地图

    hosted.weblate.org 安全
    IP地址: 116.203.108.97
    国家: 德国
    地区: 拜仁
    城市: 纽伦堡
    查看: Google 地图

    open.spotify.com 安全
    IP地址: 151.101.195.42
    国家: 美国
    地区: 加利福尼亚
    城市: 旧金山
    查看: Google 地图

    youtrack.jetbrains.com 安全
    IP地址: 63.33.88.220
    国家: 爱尔兰
    地区: 都柏林
    城市: 都柏林
    查看: Google 地图

    .spotify.com 安全
    没有可用的地理位置信息。
    accounts.spotify.com 安全
    没有可用的地理位置信息。
    api.spotify.com 安全
    没有可用的地理位置信息。
    streams.videolan.org 安全
    IP地址: 63.33.88.220
    国家: 法国
    地区: 法兰西岛
    城市: 巴黎
    查看: Google 地图

    i.scdn.co 安全
    IP地址: 23.220.75.233
    国家: 美国
    地区: 加利福尼亚
    城市: 洛杉矶
    查看: Google 地图

    android.asset 安全
    没有可用的地理位置信息。
    t.me 安全
    IP地址: 149.154.167.99
    国家: 大不列颠及北爱尔兰联合王国
    地区: 英格兰
    城市: 伦敦
    查看: Google 地图

    www.ffmpeg.org 安全
    IP地址: 149.154.167.99
    国家: 保加利亚
    地区: 索菲亚(斯托利萨)
    城市: 索菲亚
    查看: Google 地图

    手机号提取

    URL链接分析

    URL信息 源码文件
    https://api.github.com/repos/spotdl/spotify-downloader/releases/latest
    com/bobbyesp/library/data/remote/SpotDLUpdater.java
    https://spotdl.github.io/spotify-downloader/usage/#output-variables
    com/bobbyesp/spowlo/ui/pages/settings/downloader/FormatSettingsDialogsKt$OutputFormatDialog$3.java
    https://spotify.com
    https://.spotify.com
    com/spotify/sdk/android/auth/webview/LoginDialog.java
    https://.facebook.com
    https://facebook.com
    com/spotify/sdk/android/auth/webview/WebViewUtils.java
    https://t.me/spowlo_chatroom
    com/bobbyesp/spowlo/ui/pages/settings/about/ComposableSingletons$AboutPageKt$lambda3$1.java
    https://avatars.githubusercontent.com/u/60316747
    https://github.com/bobbyesp
    https://github.com/bobbyesp/spowlo
    com/bobbyesp/spowlo/ui/pages/settings/about/AboutPageKt.java
    https://i.ibb.co/3zzdbq7/wolf-avatar.png
    https://t.me/decipher3114
    https://avatars.githubusercontent.com/u/69683722
    https://github.com/xnetcat
    https://i.ibb.co/y8g4szg/image.png
    https://avatars.githubusercontent.com/u/42355410
    https://github.com/junkfood02
    https://i.ibb.co/kmxk6x6/stk-20230214-wa0124.webp
    com/bobbyesp/spowlo/ui/pages/settings/about/ComposableSingletons$AboutPageKt.java
    https://youtrack.jetbrains.com/issue/ktor-6030/migrate-to-new-kotlinx.io-library
    io/ktor/utils/io/DeprecationKt.java
    https://i.scdn.co/image/ab67616d0000b2730da5b28d9dfe894de5da63ff
    com/bobbyesp/spowlo/ui/components/songs/ComposableSingletons$SongCardKt.java
    http://twitter.com/home?status=
    https://foursquare.com/venue/
    com/soywiz/korim/qr/QR.java
    https://accounts.spotify.com/authorize/?client_id=
    https://api.spotify.com/v1
    com/adamratzman/spotify/SpotifyApi.java
    https://open.spotify.com/get_access_token?reason=transport&producttype=web_player
    com/bobbyesp/library/data/remote/auth/SpotifyAuthHandler.java
    https://i.scdn.co/image/ab67616d0000b273a152de6438e748b4c0cddff7
    com/bobbyesp/spowlo/ui/pages/settings/appearance/ComposableSingletons$AppearancePageKt.java
    127.0.0.1
    com/soywiz/korio/net/http/HttpServer.java
    127.0.0.1
    com/soywiz/korio/net/http/HttpPortableServer.java
    https://android.asset/
    io/noties/markwon/image/destination/ImageDestinationProcessorAssets.java
    https://github.com/bobbyesp/spowlo/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=
    com/bobbyesp/spowlo/CrashHandlerActivityKt$CrashReportPage$2.java
    https://ktor.io/docs/http-client-engines.html
    io/ktor/client/HttpClientJvmKt.java
    127.0.0.1
    com/soywiz/korio/net/ws/RawSocketWebSocketClient.java
    https://api.github.com/repos/bobbyesp/spowlo/releases
    https://api.github.com/repos/bobbyesp/spowlo/releases/latest
    com/bobbyesp/spowlo/utils/UpdateUtil.java
    https://developer.spotify.com/dashboard/applications
    com/bobbyesp/spowlo/ui/pages/settings/spotify/SpotifySettingsDialogsKt.java
    https://api.github.com/repos/bobbyesp/spotdl-android/releases/latest
    com/bobbyesp/spotdl_common/utils/dependencies/DependenciesUtil.java
    https://hosted.weblate.org/engage/spowlo/
    com/bobbyesp/spowlo/ui/pages/settings/appearance/LanguagePageKt.java
    https://ktor.io/docs/faq.html#no-transformation-found-exception
    io/ktor/client/call/NoTransformationFoundException.java
    127.0.0.1
    com/soywiz/korio/net/AsyncSocketFactoryKt.java
    127.0.0.1
    com/soywiz/korio/net/AsyncServer.java
    127.0.0.1
    com/soywiz/korio/net/AsyncSocketFactory.java
    https://streams.videolan.org/upload/
    http://www.ffmpeg.org/schema/ffprobe
    lib/arm64-v8a/libffprobe.so

    Firebase配置检测

    邮箱地址提取

    EMAIL 源码文件
    this@copy.slice
    io/ktor/util/NIOKt.java

    第三方追踪器

    名称 类别 网址

    敏感凭证泄露

    已显示 14 个secrets
    1、 2c6e9763bfcb6e7a61b634fff7fb9194
    2、 m339IndicatorBehindScrollableTabRowsKfQg0A
    3、 d834ae340d1e854c5f4092722f9788216d9221e5
    4、 4b3d76a2de89033ea830f476a1f815692938e33b
    5、 25a9b2d2745c098361edaa3b87936dc29a28e7f1
    6、 abcad8ba647d4b0ebae797a8f444ac9b
    7、 7ac6711e50044f1db20e4610f10f1f98
    8、 ab67616d0000b273a152de6438e748b4c0cddff7
    9、 80abdd17dcc4cb3a33815d354355bf87c9378624
    10、 88df4d670ed5e01fc7b3eff13b63258628ff5a00
    11、 1cbedd9e7345f64649bad2b493a20d9eea955352
    12、 4f388db49a045b311fd5a73c86af04bc
    13、 ab67616d0000b2730da5b28d9dfe894de5da63ff
    14、 258EAFA5-E914-47DA-95CA-C5AB0DC85B11

    字符串信息

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

    内容提供者列表

    第三方SDK

    SDK名称 开发者 描述信息
    Jetpack Graphics Google 利用多个 Android 平台版本中的图形工具降低画面延迟。
    FFmpeg FFmpeg FFmpeg 是领先的多媒体框架,能够解码,编码,转码,MUX,DEMUX,流式,过滤和播放人类和机器创建的几乎所有内容。
    MMKV Tencent MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。
    File Provider Android FileProvider 是 ContentProvider 的特殊子类,它通过创建 content://Uri 代替 file:///Uri 以促进安全分享与应用程序关联的文件。
    Jetpack App Startup Google App Startup 库提供了一种直接,高效的方法来在应用程序启动时初始化组件。库开发人员和应用程序开发人员都可以使用 App Startup 来简化启动顺序并显式设置初始化顺序。App Startup 允许您定义共享单个内容提供程序的组件初始化程序,而不必为需要初始化的每个组件定义单独的内容提供程序。这可以大大缩短应用启动时间。
    Jetpack ProfileInstaller Google 让库能够提前预填充要由 ART 读取的编译轨迹。
    Jetpack AppCompat Google Allows access to new APIs on older API versions of the platform (many using Material Design).
    Jetpack Room Google Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。

    污点分析

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