第一关
摩斯密码,直接在线解密 得到flag
第二关
第一感觉应该是修复这个二维码
二维码这三个定位角应该是固定的找个正常的二维码替换一下
得到flag
第三关
很显然考察的是加密方式,这里的密码看着像是base64,解密尝试一下
得到flag{b9768a37b47beb2d88e2dboe76a39bb3}
显然思路是正确的。但是直接提交是错误的。一般MD5值是32位由数字“0-9”和字母“a-f”所组成的字符串,里面有一个o,把他去掉无法解密,那么就替换掉
data="b9768a37b47beb2d88e2dboe76a39bb3" part="0123456789abcdef" for i in range(len(part)): replaced_data = data.replace(data[22], part[i]) print(replaced_data)
枚举解密,全都解密不出来,
擦,原理正确的flag就是b9768a37b47beb2d88e2db0e76a39bb3 o替换成0即可
第四关
感觉像是密码 01去替换
呵呵 踩坑了
居然是盲文对照,我咋可能懂啊 真是天马行空
对着表读出来是ikanxue
第五关
下载下来看看
打开发现没什么特殊的,那么思路是什么呢,文件隐写
看到length为1284 很明显隐藏了很多内容
vim打开
是零宽度字符隐写--
Unicode Steganography with Zero-Width Characters在线网站
第六关
提示凯撒
放到CyberCher会自动转码为文本:iodj{7115i261eig7i42d5fg7412fh86ded7h},{}有这两个符号,位置也对,题意很明确,凯撒加密,放到在线网站,偏移量可以根提第一个字符对应f去计算,也可以一个个数字去试,最后是3
第七关
根据提示我们可以想到栅栏密码 110米跨几个栏 10个栏
那么解密
右边W型看起来像是base64加密过的
果然,解密得到flag
第八关
解压出来是一个exe,执行并没有反应
应该是个逆向题目,首先用 Exeinfo PE 去判断是否加壳了,是多少位的
32位,没有加壳
打开IDA32位 F5反编译
发现flag在这里出现过 点进check函数看一看
代码 检查buffer中的内容是否和flag异或0x31之后的结果相等
双击flag寻找flag在内存中的值 a3=38,所以寻找往后寻找38位
编写代码解密
s=[] result='' for a in s: result+=chr(a^0x31) print(result)
得到flag
第九关
png那么我们放到010editor中看看是不是隐写 不是隐写,打开图片看看
结合提示,这竟然是瓦坎达,对应解密出来得到flag
第十关
下载打开之后是一串数字,大小也对的上
查看内容、只含有5个数字01248,题目中又有云和影的提示,云影编码无疑
#!/usr/bin/python
# -*- coding=utf8 -*-
def de_code(c):
dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]
flag = []
c2 = [i for i in c.split("0")]
for i in c2:
c3 = 0
for j in i:
c3 += int(j)
flag.append(dic[c3 - 1])
return ''.join(flag)
def encode(plaintext):
dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]
m = [i for i in plaintext]
tmp = [];flag = []
for i in range(len(m)):
for j in range(len(dic)):
if m[i] == dic[j]:
tmp.append(j + 1)
for i in tmp:
res = ""
if i >= 8:
res += int(i/8)*"8"
if i%8 >=4:
res += int(i%8/4)*"4"
if i%4 >=2:
res += int(i%4/2)*"2"
if i%2 >= 1:
res += int(i%2/1)*"1"
flag.append(res + "0")
print ("".join(flag)[:-1])
c = input("输入要解密的数字串:")
print (de_code(c))
#m_code = input("请输入要加密的数字串:")
#encode(m_code)
KAMXUEDOTCOM得到的flag 但是不对 感觉应该是KANXUEDOTCOM