检材密码:EVJbYf&+eStnx5B+C^bj%YPSr)gr
手机取证
1.请分析检材1:手机的序列号是什么?【答案格式:AB65CDEFG6HIJKLM,字母全部大写】
AM69VKKVU4CMGELB
火眼中没有看到有关信息

那就只能翻文件了,这里其实可以全局搜索serialno或者Serial Number

定位一下文件,这是手机Linux内核的上一次启动日志的备份文件,导出搜索一下

2.请分析检材1:该手机的具体型号是什么?【答案格式:小米17至尊版】
一加Ace 5 至尊版
在基本信息这里可以看到 一加 Ace

那就继续全局搜索一下一加 Ace,可以看到与答案格式相同的答案

同时在手机adb/modules/AIHZ_GJX目录下也可以看到两个文件,说明手机型号是伪装的

3.请分析检材1:手机中已删除的联系人手机号码是什么?【答案格式:12345678910】
13696966666
查看通讯录即可

4.请分析检材1:手机中找到密码本文件,计算其MD5哈希值,取后6位,字母大写。【答案格式:EF3898】
AD3563
在文件中直接搜索密码

找到密码本,计算哈希即可

5.请分析检材1:嫌疑人下载的图片隐写工具名称是什么?【答案格式:outguess.zip,英文小写】
download steghide-0.5.1-win32.zip
在/data/com.tugoubutu.liulanqi/databases找到浏览器的历史下载记录

还有一种方式就是比赛的时候猜工具名,搜steg,可以看到

6.请分析检材1:嫌疑人使用隐写工具进行文件隐写密码是什么?【答案格式:ABCD@202002】
JHTJ@202605
在图片中看到了一张名为important的图片
想起来有个密码本,然后用上题的工具爆破一下密码,一个个试太慢了,写脚本爆破

import subprocess
import os
steghide = r"d:\OneDrive\Desktop\2026獬豸杯\steghide-0.5.1-win32\steghide\steghide.exe"
image = r"d:\OneDrive\Desktop\2026獬豸杯\steghide-0.5.1-win32\important.jpg"
wordlist = r"d:\OneDrive\Desktop\2026獬豸杯\常用密码.txt"
output_dir = r"d:\OneDrive\Desktop\2026獬豸杯\steghide_output"
output_file = os.path.join(output_dir, "extracted.txt")
os.makedirs(output_dir, exist_ok=True)
with open(wordlist, "r", encoding="utf-8") as f:
passwords = [line.strip() for line in f if line.strip()]
total = len(passwords)
for i, passwd in enumerate(passwords):
print(f"\r{i+1}/{total}", end="", flush=True)
try:
result = subprocess.run(
[steghide, "extract", "-sf", image, "-p", passwd, "-f", "-xf", output_file],
capture_output=True,
timeout=10,
)
if result.returncode == 0:
print(f"\n{passwd}")
break
except subprocess.TimeoutExpired:
continue
else:
print("\nFailed.")
7.请分析检材1:嫌疑人向数据贩子购买公民个人信息共计多少条?【答案格式:123】
100
在翻看手机软件的过程中,看到了Telegram、 i聊、连趣等聊天软件
查看一下软件的聊天数据库,tg是空的,在连趣data/com.lianqujiaoyou.chat/app_flutter/文件夹下看到了聊天数据库文件

8.请分析检材1:嫌疑人向数据贩子交易时使用的付款方式是什么?【答案格式:支付宝】
银行卡
由上题聊天对话可知,后面用i聊谈钱

那就看看i聊的聊天数据,在data/uni.app.UNI04963C4/files/1600123285_3137373036323233393731/msg_0.db看到聊天记录

9.请分析检材1:数据贩子交易过程中提供的银行卡号是多少?【答案格式:6222351234482925678】
6222355973482923738
由上题可知
10.请分析检材1:接上题,嫌疑人所使用聊天工具的用户 ID 是多少?【答案格式:12345】
17706223971
在content目录下可以看到一串数字

在相同文件夹下的im.db文件夹下可以印证数字就是用户id

在连趣中,也可以看到嫌疑人发送了一个添加好友的二维码

扫描二维码

结果如下

11.请分析检材1:嫌疑人使用浏览器访问了该下载链接,该浏览器对应的包名是什么?【答案格式:com.heytap.market】
com.meiit.browser
直接搜索浏览器,看见三个浏览器

土狗浏览器是第五题的,只有一个steghide,鲁班浏览器中看到百度网盘链接

12.请分析检材1:嫌疑人于何时下载数据商人发送的数据压缩包文件?【答案格式:2022-02-02 12:00:00】
2026-05-12 17:00:05
查看百度网盘的数据库文件data/com.baidu.netdisk/databases/7045389826filelist.db

找到数据的压缩包,查看时间戳为1778576405873

13.请分析检材1:接上题,该压缩包的解压密码是什么?【答案格式:根据实际值填写】
17706223971
聊天记录中可以知道压缩包密码为手机号,然后用户id又是手机号格式,尝试一下

成功解压

14.请分析检材1:接上题,年龄在 40 至 60 岁(含 40、60 岁)的富豪共有多少人?【答案格式:123】
46
对年龄排序,选中即可

15.综合分析:请找出嫌疑人筛选的重点客户名单,并统计名单内共有多少人?【答案格式:1】
5
对第五题的引写图片提取出来的payload.out

010打开是一个被截断的 ZIP

虽然外层 ZIP 数据流尾部截断,但关键的<font style="color:rgb(51,51,51);">xl/worksheets/sheet1.xml</font>与<font style="color:rgb(51,51,51);">xl/sharedStrings.xml</font>可恢复

import struct, zlib, re
data = open(r'd:\OneDrive\Desktop\2026獬豸杯\steghide-0.5.1-win32\steghide\payload.out', 'rb').read()
idx = data.find(b'PK\x03\x04')
inner = data[idx:]
# 解压外层的 deflate
nlen = struct.unpack_from('<H', inner, 26)[0]
elen = struct.unpack_from('<H', inner, 28)[0]
d = zlib.decompressobj(-15)
xlsx_data = d.decompress(inner[30+nlen+elen:], max_length=50000)
# 遍历内层 ZIP,提取 sharedStrings 和 sheet1
strings = []
sheet_xml = ''
off = 0
while off < len(xlsx_data) - 4:
if xlsx_data[off:off+4] != b'PK\x03\x04':
off += 1
continue
nlen = struct.unpack_from('<H', xlsx_data, off+26)[0]
elen = struct.unpack_from('<H', xlsx_data, off+28)[0]
name = xlsx_data[off+30:off+30+nlen].decode('utf-8')
csize = struct.unpack_from('<I', xlsx_data, off+18)[0]
method = struct.unpack_from('<H', xlsx_data, off+8)[0]
dstart = off + 30 + nlen + elen
if 'sharedStrings' in name:
raw = xlsx_data[dstart:dstart+csize]
xml = (zlib.decompress(raw, -15) if method == 8 else raw).decode('utf-8')
strings = re.findall(r'<t[^>]*>([^<]+)</t>', xml)
elif 'sheet1' in name:
raw = xlsx_data[dstart:dstart+csize]
sheet_xml = (zlib.decompress(raw, -15) if method == 8 else raw).decode('utf-8')
off = dstart + csize
# 解析 sheet1 的行数据
rows = re.findall(r'<row[^>]*>(.*?)</row>', sheet_xml, re.DOTALL)
header = ['姓名', '身份证号码', '银行卡(借记卡)', '手机号码', '出生日期', '年龄', '出生地']
print('=' * 120)
print(f"{header[0]:<10} {header[1]:<18} {header[2]:<19} {header[3]:<12} {header[4]:<12} {header[5]:<4} {header[6]}")
print('=' * 120)
for row in rows[1:]:
vals = re.findall(r'<v>([^<]+)</v>', row)
row_data = []
for v in vals:
if v.isdigit() and int(v) < len(strings):
row_data.append(strings[int(v)])
else:
row_data.append(v)
print(f"{row_data[0]:<10} {row_data[1]:<18} {row_data[2]:<19} {row_data[3]:<12} {row_data[4]:<12} {row_data[5]:<4} {row_data[6]}")
print('=' * 120)
计算机取证
1.请分析检材2:密码连续错误输入多少次数后,系统会自动锁定用户账户?【答案格式:1】
3
直接win+R输入cmd,然后输入net accounts即可

或者是win+R输入gpedit.msc,查看账户策略

2.请分析检材2:检材中对应的微信 wxid 是多少?【答案格式:wxid_1a2b3c4d5e6f】
wxid_q1w2e3r4t5y6u7i8o9
在文档中看到了微信数据文件

3.请分析检材2:E盘 BitLocker 恢复密钥末尾六位是多少?【答案格式:616912】
126269
在微信数据目录下看到两张带二维码的图片

扫描一下二维码


用第一张图片的密钥成功解开
4.请分析检材2:VC加密容器的外层加密卷密码是什么?【答案格式:根据实际值填写】
JHTJ!@#¥A313
在D盘可以看到一个名称为1的1G文件,大概率就是VC容器了

同时该目录下有个1.png的图片,用记事本打开可以看到外层密码

5.请分析检材2:带有“豆包AI生成”水印的图片一共有多少张?【答案格式:1】
6
在图片这里看到了四张

然后bitlocker密钥那里刚刚也有两张
6.请分析检材2:VC加密容器的隐藏加密卷密码是什么?【答案格式:根据实际值填写】
ClearSky@SecretSignal#SevenMileJasmine
对上述豆包生成的四张图片进行分析,发现3.png中存在一张二维码

得到隐藏加密卷密码ClearSky@SecretSignal#SevenMileJasmine

7.请分析检材2:接上题,嫌疑人的接头暗号是什么?【答案格式:根据实际值填写】
步行九千米
用隐藏卷密码挂载VC容器发现密码错误

看了joy的wp后发现,原来还需要桌面上的密钥文件。。。

挂载后看到几个音频文件,应该是音频引写

用Audacity打开Secret Signal看一下频谱图

8.请分析检材2:接上题,嫌疑人的接头地点在哪里?【答案格式:天津117大厦201室】
Taipei 101 building 502 room
对这四张二进制图片文件进行分析
