MISC-物尽其用
ISCC2026 WriteUp 提交模板
MISC-物尽其用
解题思路
- 从
model_state.npz提示确定目标表达式


对 base_hint_bytes 做 base64 解码和 gzip 解压后,可以得到:ISCC{MD5(flag1R||flag2G)}
train是个训练脚本,读取的是config.json。

查看json
{
"training": {
"epochs": 10,
"batch_size": 1,
"lr": 0.001
},
"callbacks": {
"aux_log_enabled": false,
"recovery_enabled":false
}
}
可以看到两个关闭的选项,callbacks还是个回调。需要关键找一下这个callbacks。
使用IDA打开train.exe搜了下相关字符串,发现没有命中。直接跑下沙箱看看吧

发现原来会释放一些文件,估计真实逻辑就在这里面,先搜下字符串相关逻辑。

着手分析下core_secret.pyd文件,对其进行重建之后发现:
- 从 RGB 三个通道提取 payload
- 把三路 payload 重新写回图像 LSB
- 只对 prefix ... suffix 中间那段做可复现打乱
- normal 模式做固定通道置换 (R,G,B) -> (G,B,R)
- 把原图和灰度/彩色图拼成四象限布局
- RecoveryCallback
- 负责隐藏 recovery 流程和 key 修复
- ObfuscatedPayloadProcessor
- 负责把原始 payload 做多步 bit 级混淆
- SimpleStegoModel
- 模型本体,带 forward 和 set_key

可以看到需要修改config.json文件
{
"callbacks": {
"aux_log_enabled": true,
"recovery_enabled": true,
"sched": "resume"
}
}

成功触发hiden模式,输出了个outpng文件
lsb看下两个png图片·


Input.png
R: ISCC{ZmoKmIaCZp}
G: ISCC{BZunamPQaL}
B: ISCC{jIYrHdVhWr}
Output.png
R: ISCC{aaPZLQnmuB}
G: ISCC{dYWhrrHIVj}
B: ISCC{ImZCaZKpmo}
根据题目要求有:
```text
MD5("ZmoKmIaCZp" + "dYWhrrHIVj")
= abcacd4276967a3089ca27506882ad2d
所以有flag:ISCC{abcacd4276967a3089ca27506882ad2d}

浙公网安备 33010602011771号