2018 网鼎杯-第一场 WriteUp
📝 赛事概况
比赛赛制:采用线上 CTF(夺旗赛) 模式
晋级规则:每场线上预选赛取前 50 名进入线下半决赛。比赛结束后,前 50 名需在 12 小时内提交 Writeup 供审核
Misc
minified(通道隐写)

点击向右箭头发现 Red plane 0 是空的

分别把 alpha,green 和 blue 的 0 通道另存为再进行异或处理,最终在 alpha 和 green 的中发现 flag

beijing(Switch Case + 异或)
进入 main 函数,每次都输出 sub_804860 函数的结果

进入函数内部发现是 Switch Case 结构

它把 .data 中从 0x804a020 开始的 28 个字节,每两个一组做异或

如果每两个字节一组
1 | 0: a L |
这时候注意每组的第一个字符
1 | index 0 -> a |
再看我们 main 函数中传入的参数

对应 sub_804860 函数的 a1 变量,也就是选择分支的变量

把这些数据提取出来

得到对应的映射关系
1 | table = ['a','g','i','n','b','e','f','j','m','l','{','z','}','_'] |
拼接得到 flag:flag{amazing_beijing}