# Misc
观察 AI 代码,
1 | def random_ai(palyerinputs): |
可知当玩家第一次出拳时,AI 随机选择出拳;此后,AI 总选择玩家使用最多的出拳方式的下一个出拳。
这样就很简单,可以写一份代码,选择 AI 出拳方式的前一个即可。考虑可能 AI 出拳三个中的第一个,所以将 - 2 改为 + 1 就能解决问题。
生成代码如下:
1 | a=[1,2,3] |
可生成首次出拳为 Rock 的必胜出法。
输入靶机时,由于 AI 第一次出拳随机,所以需要多操作几次,直到第一次输入 Rock 显示玩家赢,将后续必胜方法复制输入即可拿到 flag。
即 flag 为 XYCTF
# game
# 我的二维码为什么扫不出来
题目附件给出了一个被混淆的二维码和一个加密程序。
图片中二维码由 25 行 * 25 列构成,每一格为一个像素。
混淆程序的操作为,随机选取七次,选中的行或列进行反色处理(即白格变黑格,黑格变白格)
依照二维码的基本特征(三个定位框), 可以直接找出四个被反色处理的行和列。分别为一、三、六列和第二行。经过处理,发现仍然无法扫码。说明剩余三行随机在二维码的某行某列进行反色。三行较少,可以直接爆破处理。
在 python 导入 pyzbar 的二维码扫描组件,在穷举爆破时辅助扫描,最终发掘出 flag。
flag{qR_c0d3_1s_s0_fun}
恢复的二维码:
对应 python 程序(主函数,重复部分省略)
1 | reverse_col_colors(pixels, (height//10-1)*1//25, height) |
# Osint1
# Osint2
信息:洛阳龙门 - 泸州(15:10 发车)
然后附近知名景点一个一个试
# ez_隐写
第一层伪加密
第二层口令爆破
第三层盲水印得 flag
# 熊博士
# ZIP 神之套
IDA 打开得到提示
掩码爆破压缩包
明文爆破
md 文件里发现 flag
# 出题有点烦
字典爆破
对最后一张图片进行 foremost 发现一个压缩包,进行暴力破解
# zzl 的护理小课堂
开启靶机,进入答题界面
# 方法 1
答题即可,超过 100 分拿 flag。
# 方法 2
观察源码,发现这一段 js:
在控制台输入即可。
# 方法 3
注意到 flag.php,直接访问被拦截:
推测为 Referer 验证,用 ModHeader 添加即可。
# 真 > 签到
文件头
# 彩蛋?
第一个 ASCII 码
第二个
第三个封面 lsb 隐写
Dvorak 键盘解码
# 签到
# EZ_Base1024*2
由题意可知为 base2048 编码,使用工具解密即可。
# 美妙的歌声
AU 打开获得 key
deepsound 解密
得到 flag
# Ez_osint
# 疯狂大杂烩!九转功成
1
宽高
flag1:XYCTF{T3e_c0mb1nation_
2
flag2:0f_crypt0_and_
3
flag3:misc_1s_re6lly_fun!!
4
微信聊天数据库解密
flag4:L1u_and_K1cky_Mu
5
文本隐写 + serpent 解密
flag5:_3re_so_sm4rt!
6
按键盘布局画字母
steghide 密码:文件名排列一下
flag6:In_just_a_few_m1nutes_
7
维吉尼亚 keyA-Z
将 m 改为 d
flag7:they_were_thr0ugh!
8
<img src="http://img.miaoaixuan.cn/1712160790804-4671b4a1-bd17-4c6b-a7d1-e7ffc1dc5ee1.png" alt="img" style="zoom:50%;" />
flag8: Sm3rt_y0u_can_do
9
oursecret 解密
flag9: _nine_turns?}
1 | XYCTF{T3e_c0mb1nation_0f_crypt0_and_misc_1s_re6lly_fun!!L1u_and_K1cky_Mu_3re_so_sm4rt!In_just_a_few_m1nutes_they_were_thr0ugh!Sm3rt_y0u_can_do_nine_turns?} |