1.打开文件一眼换表
2.查看表类型为A-Z a-z 0-9判断为base62换表,脚本如下
# 表 9876543210qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAPOIUYTREWQ
# 密文 7dFRjPItGFkeXAALp6GMKE9Y4R4BuNtIUK1RECFlU4f3PomCzGnfemFvO
BASE = 62
CHARSET_DEFAULT = '9876543210qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAPOIUYTREWQ'
str1 = "7dFRjPItGFkeXAALp6GMKE9Y4R4BuNtIUK1RECFlU4f3PomCzGnfemFvO"
def _value(ch, charset):
try:
return charset.index(ch)
except ValueError:
raise ValueError("base62: Invalid character (%s)" % ch)
def decode(encoded, charset=CHARSET_DEFAULT):
if encoded.startswith("0z"):
encoded = encoded[2:]
l, i, v = len(encoded), 0, 0
for x in encoded:
v += _value(x, charset=charset) * (BASE ** (l - (i + 1)))
i += 1
return v
def decodebytes(encoded, charset=CHARSET_DEFAULT):
decoded = decode(encoded, charset=charset)
buf = bytearray()
while decoded > 0:
buf.append(decoded & 0xFF)
decoded //= 256
buf.reverse()
return bytes(buf)
print(decodebytes(str1))
得到flag
flag: flag{cf492422-13cb-4123-8bc5-5495f0349494}
[红明谷CTF 2022]MissingFile
没想到strings一把梭
[NSSRound#4 SWPU]Knight's Tour!
1.打开文件报错,修改文件后缀为rar
2.还是报错,考虑到应该是被换了文件头
3.修改为
4.棋类游戏,发现存在红色和黄色两种颜色,搜索题目为Knight's Tour!,翻译为马的周游,类似于中国象棋马走日,简单来说从一个起点通过走日的方法完成整个句子,最后将对应的颜色按照二进制进行提取。
、
最后得到二进制字符串
01000011
01101000
00110001
01110110
01000000
01101100
01110010
01111001
将字符串解密得到
flag:NSSCTF{Ch1v@lry}