首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
CTF对抗
发新帖
0
0
[原创]KCTF2026 第9题 ICTFForCausalLM 模型逆向 WriteUp
发表于: 2026-8-22 12:18
29
[原创]KCTF2026 第9题 ICTFForCausalLM 模型逆向 WriteUp
FUA陈探乐
1
2026-8-22 12:18
29
ICTFForCausalLM 模型逆向 WriteUp ================================================================ 【题目概述】 附件是一个字符级因果语言模型 ICTFForCausalLM(MLP)及其权重。 模型输入不超过 16 个字符的字符串,输出一个预测字符(id 62 为 <success>,id 63 为 <fail>)。目标是恢复能令模型输出 <success> 的真实 flag。 【代码关键】 model_def.py: dense = Linear(16, 21); act=ReLU; lm_head=Linear(21,64) 输入 input_ids 直接转 float 作为 x,无 embedding。 tokenizer 字符集: 0-9 a-z A-Z(62 个字符),补零到 16。 inference.py: 取最后位置 logits 的 argmax 作为预测字符。 【权重逆向(手工解析 safetensors)】 用纯 Python 解析 model.safetensors 明文格式,得到 4 个张量: dense.weight [21,16] -> W1 dense.bias [21] -> b1 lm_head.weight[64,21] -> W2 lm_head.bias [64] -> b2 前向: h = ReLU(W1*x + b1); logits = W2*h + b2。 观察权重的强结构特征: 1) b2[i] = -10000 对所有 i != 62,63;b2[62]=-376131;b2[63]=0.4 -> 除 success/fail 外所有输出 logits 恒为 -10000,永不成为最大值。 2) W2[62] = [1, -1e10, -1e10, ..., -1e10];W2[63] 及其余行全 0 -> logits[62] = h[0] - 1e10 * sum(h[1..20]) - 376131 因为 h[j]>=0,只要任一 j>=1 的隐藏单元 >0,logits[62] 立即跌到 约 -3.5e14,必然失败。 3) 结论: 成功 当且仅当 h[1..20] 全部 == 0 且 h[0] > 376131.4。 等价于(记 row = W1 的行,b = b1): 对全部 j=1..20: row_j*x + b1[j] <= 0 (trap 隐藏单元关闭) 且 row_0*x > 64572.68 (h[0] 拉高) 其中 x 为 16 个 token,取值 {0..61}。 【整数线性规划求解】 用 scipy.optimize.milp 求解: 变量 x ∈ {0..61}^16(取整) 目标 最大化 row_0*x 约束 row_j*x <= -b1[j] (j=1..20) row_0*x >= 64573 求得唯一可行整数解: x = [15,1,10,16,2,0,2,6,12,7,15,10,1,6,6,6] 再对每一位在 {0..61} 内逐位可行性探测,结果每一位都只有唯一可用 token(改变任一位都会开启 trap 单元导致失败),因此解是唯一的, 即作者植入的真实 flag。 【结果】 按字符集 0..61 解码得到明文: f1ag2026c7fa1666 【验证】 用与 inference.py 完全一致的前向复算: 输入 "f1ag2026c7fa1666" h[0] = 376131.7, 其余 h[j] = 0 logits[62] = 0.50 > logits[63] = 0.4 (> 其他 -10000) argmax = 62 -> 输出 <success> ✅ 改动任意一位字符均输出 <fail>,与唯一性一致。 最终 flag: f1ag2026c7fa1666 ================================================================
传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!
最后于
2026-8-23 12:03 被kanxue编辑 ,原因:
收藏
・
0
点赞
・
0
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
0
)
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
FUA陈探乐
1
15
发帖
17
回帖
50
RANK
关注
私信
他的文章
[转帖]我看蒙了 原来我一直读的都是错的!
326
[原创]KCTF2026 第七题 HEXMAZE人话解读
312
[原创]KCTF2026 第9题 ICTFForCausalLM 模型逆向 WriteUp
29
[求助]【KCTF2026 防守方计分复核申诉】第七题 戌时・暗能潜流火力跳水异常
182
[原创]KCTF2026 第5题 解析 Writeup5
83
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部