2026盘古石杯初赛团体
前言
本文记录 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 | 案件目录:方俊郎phone |
在 Android 安装包记录中检索 com.example.predictor,可以在 packages.xml 与 packages.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 | 案件目录:APK取证 |
先用 ewfinfo 查看镜像基础信息,确认该检材为 FTK Imager 生成的 E01 镜像,介质大小为 256 GiB,并保留了 MD5、SHA1 校验信息。
1 | wsl ewfinfo originals/phone.E01 |
在导出的应用文件中定位到包名 com.example.predictor。AndroidManifest.xml 与 strings.xml 显示该应用的标签/名称为 优质客户AI判定、优质客户预测,因此可以确认它就是题目中的“优质客户”应用。
1 | AndroidManifest.xml: android:label="优质客户AI判定" |
该 APK 存在壳加载逻辑。ShellApplication 会使用字符串 Sh3ll_L0ad3r_K3y_2024! 解密 assets/payload.dat,解析后得到原始 dex 文件,其中业务逻辑主要位于解包后的 classes3.dex。随后对 classes3.dex 进行反汇编,重点查看数据库与密钥派生相关类。
1 | apktool d base.apk |
关键代码位置如下:
| 证据点 | 位置 | 结论 |
|---|---|---|
| 数据库文件名 | 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 | chat_history.db |
3. “优质客户”应用的补充逆向信息
同一应用中还记录了多项可直接回答的逆向结论,后续若遇到同组题目可以直接复用。
| 问题 | 证据位置 | 答案 |
|---|---|---|
| 哪个本地端口用于检测动态调试/插桩? | SecurityManager.smali 的 isFridaDetected socket 连接逻辑 |
27042 |
| 密钥派生使用的第一段 salt 是什么? | KeyDeriver.smali 的 getSaltPart1 |
Pr3d1ct0r |
| 密钥派生失败时使用的硬编码 fallback key 是什么? | KeyDeriver.smali 的 deriveKey 异常处理分支 |
f4ll8ack_k3y_2024_pr3d1ct0r |
| 用于检测 Hook 框架的完整类名是什么? | SecurityManager.smali 的 isXposedDetected |
de.robv.android.xposed.XposedBridge |
| 存储密钥校验值的 preference key 是什么? | KeyDeriver.smali 与 app_config.xml |
db_integrity_check |
| 聊天/历史记录数据表名是什么? | ChatDatabaseHelper.smali 的建表逻辑 |
chat_records |
| 第三个盐值片段逐字符拼接后的完整内容是什么? | KeyDeriver.smali 的 getSaltPart3() |
X9kZ!qW3 |
| Frida 动态拦截明文 DEX 字节数组应 Hook 哪个壳私有方法? | ShellApplication.smali 的私有加载逻辑 |
initDexFromMemory |
| 壳代码解密密钥 3 个字符串片段拼接后的完整明文是什么? | ShellApplication.smali 的 getKeyPart1、getKeyPart2、getKeyPart3 |
Sh3ll_L0ad3r_K3y_2024! |
| 通用脱壳工具附加后触发进程自杀的 Java 系统方法签名是什么? | ShellApplication.smali 的 lambda$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 | 案件目录:黄志远phone |
先确认 /data 分区为 ext4,并提取 Android 包管理记录。关键文件为:
1 | exports/android/packages.xml |
检索安装包记录:
1 | 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"' |
命中的四个短视频应用如下:
| 应用 | 包名 | 说明 |
|---|---|---|
| 抖音极速版 | com.ss.android.ugc.aweme.lite |
短视频应用 |
| 抖音 | com.ss.android.ugc.aweme |
短视频应用 |
| 快手极速版 | com.kuaishou.nebula |
短视频应用 |
| 快手 | com.smile.gifmaker |
短视频应用 |
此外,tv.danmaku.bili 和 com.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 | wsl fls -o 1050624 -p -r exports/ewf/phone_raw.raw | grep -i 'usagestats' |
在 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 | exports/android/appdata/com.discord/files/kv-storage/@account.1457974771206852664/a |
整理后的结论如下:
| 问题 | 证据位置 | 答案 |
|---|---|---|
黄志远使用 gptos.intelligence.assistant 攻击过多少台主机? |
messages0 的 rowid 39、rowid 106 |
1 |
| 使用哪款应用控制其 PC 的 agent 工具? | messages0 rowid 15 |
discord |
| 控制应用版本是多少? | CacheStore.xml 的 deviceProperties;packages.xml 第 1008 行 |
311.20 |
| 控制应用登录用户名是什么? | DiscordNotificationClient.xml 第 3-4 行;CacheStore.xml 的 UserStore |
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 | Here's your pairing code: 3EXEQ5R8 |
1 | rowid 39:要求渗透并提权 192.168.61.135 |
扫描 IP 去重后为:
1 | 192.168.1.10 |
暴力破解工具统计中,hydra 出现在两条暴力破解调用里,暂未确认其他不同的暴力破解工具,因此按工具种类统计为 1。
二、其他检材登记
以下检材当前在工作区中已有基础登记和哈希记录,但尚未整理出完整题目级推理。
| 检材 | 原始路径 | SHA256 |
|---|---|---|
| 林小婉APK | C:\Users\glj07\Desktop\1778310207366_9eee4f1c.apk |
714CD074D6988639E6F34010D8199306186CE9BD11FCCA9A5D152FF5148A91DB |
| 周文杰Image | K:\周文杰\Image.zip |
A81BE1BE3D2FD7F40EEA6048876C8833F842319AF0A59390C88E64018A9D1CBB |
当前检查结论
当前 WP 已将工作区里的英文记录模板整理成中文叙述,并保留了所有关键证据值。后续如果继续补题,可以优先沿用本文结构:先列检材来源与哈希,再给出关键命令、证据位置、原始摘录和最终答案;对尚未完全复核的候选答案会在正文中明确标注。

