前言

本文记录 2026 盘古石杯初赛团体赛当前已完成复核的取证题。当前材料主要来自工作区内的 analysis-notes.md、导出的 Android 文件系统记录、APK 反编译结果和 UsageStats 事件记录;题目答案值、包名、表名、哈希、命令和原始日志片段均保持原文。
参考wp:
https://mp.weixin.qq.com/s/KdO1PeHuczB-pF6Oy47amg

答案速览

题目 当前答案
方俊朗/方俊郎使用筛选优质客户的应用包名 com.example.predictor
“优质客户”应用的加密数据库文件名 chat_history.db
加密数据库密钥派生算法 PBKDF2WithHmacSHA256
密钥派生迭代次数 10000
动态调试/插桩检测的本地端口 27042
密钥派生使用的第一段 salt Pr3d1ct0r
第三段 salt 逐字符拼接结果 X9kZ!qW3
密钥派生失败时的硬编码 fallback key f4ll8ack_k3y_2024_pr3d1ct0r
Hook 框架检测类名 de.robv.android.xposed.XposedBridge
存储密钥校验值的 SharedPreferences 键名 db_integrity_check
存储聊天/历史记录的数据表 chat_records
Frida 拦截明文 DEX 字节数组应 Hook 的壳私有方法 initDexFromMemory
壳代码解密密钥拼接结果 Sh3ll_L0ad3r_K3y_2024!
通用脱壳工具附加后触发进程自杀的方法签名 java.lang.System.exit
黄志远手机安装的短视频应用数量 4
gptos.intelligence.assistant 首次打开时间 2026-04-17-14:39:39
黄志远使用 gptos.intelligence.assistant 攻击过的主机数 1
黄志远用于控制 PC 端 agent 的应用 discord
控制应用版本 311.20
控制应用登录用户名 test901234.
控制应用与 PC 端 agent 的配对码 3EXEQ5R8
该应用扫描的 IP 数量 3
该应用调用的暴力破解工具数量 1
内部通联工具账号登录密码 Pgs-dbw1776839203359Good
黄志远发送给代号军师的文件数量 1(候选,待完整解密复核)

一、手机取证

1. 方俊朗/方俊郎使用的“优质客户”筛选应用包名

题目: 方俊朗/方俊郎使用筛选优质客户的应用包名是什么?

检材与来源:

1
2
案件目录:方俊郎phone
原始检材:K:\方俊郎\phone.E01

在 Android 安装包记录中检索 com.example.predictor,可以在 packages.xmlpackages.list 中同时命中。

1
Select-String -LiteralPath exports/android/packages.xml,exports/android/packages.list -Pattern 'com\.example\.predictor'

关键位置如下:

证据文件 位置 证据摘录
exports/android/packages.xml 第 1318 行 <package name="com.example.predictor" ...>
exports/android/packages.list 第 32 行 com.example.predictor 10087 1 /data/user/0/com.example.predictor

因此答案为:

1
com.example.predictor

2. “优质客户”应用的加密数据库信息

题目: 方俊朗/方俊郎 phone.E01 中,“优质客户”应用的加密数据库文件名、密钥派生算法和迭代次数分别是什么?

检材与来源:

1
2
3
案件目录:APK取证
原始检材:originals/phone.E01
SHA256:9AC1BA527759CCACB24163DB5F7465D9492786F17732FFAAB7252A4029F4720D

先用 ewfinfo 查看镜像基础信息,确认该检材为 FTK Imager 生成的 E01 镜像,介质大小为 256 GiB,并保留了 MD5、SHA1 校验信息。

1
wsl ewfinfo originals/phone.E01

在导出的应用文件中定位到包名 com.example.predictorAndroidManifest.xmlstrings.xml 显示该应用的标签/名称为 优质客户AI判定优质客户预测,因此可以确认它就是题目中的“优质客户”应用。

1
2
AndroidManifest.xml: android:label="优质客户AI判定"
strings.xml: app_name="优质客户预测"

该 APK 存在壳加载逻辑。ShellApplication 会使用字符串 Sh3ll_L0ad3r_K3y_2024! 解密 assets/payload.dat,解析后得到原始 dex 文件,其中业务逻辑主要位于解包后的 classes3.dex。随后对 classes3.dex 进行反汇编,重点查看数据库与密钥派生相关类。

1
2
3
4
5
apktool d base.apk
baksmali disassemble unpacked_payload/classes3.dex
Select-String "DATABASE_NAME|chat_history.db|SQLiteOpenHelper"
Select-String "PBEKeySpec|PBKDF2WithHmacSHA256"
Select-String "PBKDF2_ITERATIONS|0x2710|key_iterations"

关键代码位置如下:

证据点 位置 结论
数据库文件名 ChatDatabaseHelper.smali 第 21 行、第 46-48 行 DATABASE_NAME = "chat_history.db"
密钥派生算法 KeyDeriver.smali 第 495-517 行 SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256")
迭代次数 KeyDeriver.smali 第 9、372、507 行;app_config.xml 0x2710,即十进制 10000

因此,本题答案为:

1
2
3
chat_history.db
PBKDF2WithHmacSHA256
10000

3. “优质客户”应用的补充逆向信息

同一应用中还记录了多项可直接回答的逆向结论,后续若遇到同组题目可以直接复用。

问题 证据位置 答案
哪个本地端口用于检测动态调试/插桩? SecurityManager.smaliisFridaDetected socket 连接逻辑 27042
密钥派生使用的第一段 salt 是什么? KeyDeriver.smaligetSaltPart1 Pr3d1ct0r
密钥派生失败时使用的硬编码 fallback key 是什么? KeyDeriver.smalideriveKey 异常处理分支 f4ll8ack_k3y_2024_pr3d1ct0r
用于检测 Hook 框架的完整类名是什么? SecurityManager.smaliisXposedDetected de.robv.android.xposed.XposedBridge
存储密钥校验值的 preference key 是什么? KeyDeriver.smaliapp_config.xml db_integrity_check
聊天/历史记录数据表名是什么? ChatDatabaseHelper.smali 的建表逻辑 chat_records
第三个盐值片段逐字符拼接后的完整内容是什么? KeyDeriver.smaligetSaltPart3() X9kZ!qW3
Frida 动态拦截明文 DEX 字节数组应 Hook 哪个壳私有方法? ShellApplication.smali 的私有加载逻辑 initDexFromMemory
壳代码解密密钥 3 个字符串片段拼接后的完整明文是什么? ShellApplication.smaligetKeyPart1getKeyPart2getKeyPart3 Sh3ll_L0ad3r_K3y_2024!
通用脱壳工具附加后触发进程自杀的 Java 系统方法签名是什么? ShellApplication.smalilambda$startAntiDumperDaemon$0() java.lang.System.exit

其中端口号来自 SecurityManager.smali 中的 InetSocketAddress("127.0.0.1", 0x69a2)0x69a2 换算为十进制即 27042。表名来自 CREATE TABLE chat_records,与常量 TABLE_CHAT = "chat_records" 相互印证。

第三段 salt 来自字符码 0x58 0x39 0x6b 0x5a 0x21 0x71 0x57 0x33,逐字符解码后为 X9kZ!qW3。壳解密密钥由 Base64、XOR 字节和反转字符串三段拼接而成:U2gzbGxf 解码得到 Sh3ll_,XOR 字节得到 L0ad3r_K,反转字符串得到 3y_2024!,最终为 Sh3ll_L0ad3r_K3y_2024!

4. 黄志远手机安装了多少款短视频应用

题目: 黄志远手机总共安装了多少款短视频应用?答案格式为数字。

检材与来源:

1
2
3
案件目录:黄志远phone
原始检材:originals/phone.E01
SHA256:DC9F7629643E8BE02BB73A2FD084A22193EBCA915BB50A57A62FC3D24064FF1F

先确认 /data 分区为 ext4,并提取 Android 包管理记录。关键文件为:

1
2
exports/android/packages.xml
exports/android/packages.list

检索安装包记录:

1
2
Select-String -LiteralPath exports/android/packages.xml -Pattern '<package name="com\.ss\.android\.ugc\.aweme\.lite"|<package name="com\.ss\.android\.ugc\.aweme"|<package name="com\.kuaishou\.nebula"|<package name="com\.smile\.gifmaker"'
Select-String -LiteralPath exports/android/packages.list -Pattern '^com\.ss\.android\.ugc\.aweme\.lite |^com\.ss\.android\.ugc\.aweme |^com\.kuaishou\.nebula |^com\.smile\.gifmaker '

命中的四个短视频应用如下:

应用 包名 说明
抖音极速版 com.ss.android.ugc.aweme.lite 短视频应用
抖音 com.ss.android.ugc.aweme 短视频应用
快手极速版 com.kuaishou.nebula 短视频应用
快手 com.smile.gifmaker 短视频应用

此外,tv.danmaku.bilicom.sobey.fc.component.btvvideo 虽然与视频相关,但分别属于 Bilibili 和京 8/BTV 这类视频平台/视频应用,不按本题“短视频应用”口径计入。

所以答案为:

1
4

5. gptos.intelligence.assistant 首次打开时间

题目: gptos.intelligence.assistant 应用首次打开应用的时间是什么?

先从安装记录中确认该应用存在:

1
Select-String -LiteralPath exports/android/packages.xml,exports/android/packages.list -Pattern 'gptos\.intelligence\.assistant'

packages.xml 中的安装/更新时间为 2026-04-17 11:50:35.782(Asia/Shanghai),但这只是安装或更新时间,不能直接当作首次打开时间。

继续提取系统 UsageStats 日志:

1
2
wsl fls -o 1050624 -p -r exports/ewf/phone_raw.raw | grep -i 'usagestats'
wsl icat -o 1050624 exports/ewf/phone_raw.raw 131547 > exports/android/usagestats/daily/1776388876473

exports/android/usagestats/daily/1776388876473 中,gptos.intelligence.assistant 的第一次前台事件为:

1
<event time="19103003" package="gptos.intelligence.assistant" class="app.anyclaw.MainActivity" flags="0" type="1" />

该 daily 文件基准时间为 1776388876473 毫秒,事件相对时间为 19103003 毫秒:

1
1776388876473 + 19103003 = 1776407979476

将 Unix 毫秒时间戳 1776407979476 转为 Asia/Shanghai 时间,得到:

1
2026-04-17 14:39:39

日志中还存在更晚的前台事件,时间约为 2026-04-17 21:35:25,并且应用本地 setup.log、Crashlytics session 也能支持这一晚间会话。但它不是第一次前台打开事件,因此不能作为本题答案。

所以答案为:

1
2026-04-17-14:39:39

6. 黄志远手机中的 Discord/agent 控制线索

黄志远手机中还存在与 gptos.intelligence.assistant、Discord 和 PC 端 agent 控制相关的线索。主要证据来自 Discord 的 kv-storage 数据库和相关 shared preferences。

1
2
3
exports/android/appdata/com.discord/files/kv-storage/@account.1457974771206852664/a
exports/android/appdata/com.discord/shared_prefs/CacheStore.xml
exports/android/appdata/com.discord/shared_prefs/DiscordNotificationClient.xml

整理后的结论如下:

问题 证据位置 答案
黄志远使用 gptos.intelligence.assistant 攻击过多少台主机? messages0rowid 39rowid 106 1
使用哪款应用控制其 PC 的 agent 工具? messages0 rowid 15 discord
控制应用版本是多少? CacheStore.xmldevicePropertiespackages.xml 第 1008 行 311.20
控制应用登录用户名是什么? DiscordNotificationClient.xml 第 3-4 行;CacheStore.xmlUserStore test901234.
该应用与 PC 端 agent 的配对码是什么? messages0 rowid 15 3EXEQ5R8
该应用共对几个 IP 进行扫描? messages0 中的扫描/任务消息 3
该应用总共调用了几个暴力破解工具? messages0 rowid 106 1
内部通联工具账号的登录密码是多少? com.socialchat.social_chat_app/shared_prefs/FlutterSharedPreferences.xml 第 3 行 Pgs-dbw1776839203359Good
黄志远一共发送过几个文件给代号军师的嫌疑人? social_chat.db 与 APK schema 中的 message_file 1(候选,待完整解密复核)

关键摘录如下:

1
2
Here's your pairing code: 3EXEQ5R8
hermes pairing approve discord 3EXEQ5R8
1
2
rowid 39:要求渗透并提权 192.168.61.135
rowid 106:记录了针对 192.168.61.135 的终端命令

扫描 IP 去重后为:

1
2
3
192.168.1.10
192.168.1.16
192.168.61.135

暴力破解工具统计中,hydra 出现在两条暴力破解调用里,暂未确认其他不同的暴力破解工具,因此按工具种类统计为 1

二、其他检材登记

以下检材当前在工作区中已有基础登记和哈希记录,但尚未整理出完整题目级推理。

检材 原始路径 SHA256
林小婉APK C:\Users\glj07\Desktop\1778310207366_9eee4f1c.apk 714CD074D6988639E6F34010D8199306186CE9BD11FCCA9A5D152FF5148A91DB
周文杰Image K:\周文杰\Image.zip A81BE1BE3D2FD7F40EEA6048876C8833F842319AF0A59390C88E64018A9D1CBB

当前检查结论

当前 WP 已将工作区里的英文记录模板整理成中文叙述,并保留了所有关键证据值。后续如果继续补题,可以优先沿用本文结构:先列检材来源与哈希,再给出关键命令、证据位置、原始摘录和最终答案;对尚未完全复核的候选答案会在正文中明确标注。