考察点,信息的编码解码。
根据代码中的提示,
将这一串乱码用ord函数处理,居然是与乱码一一对应的数字
哦!原来是Unicode码,这些码对应着这些汉字
底层采用utf-8编码(对一个n字节的字符,第一个字节前n位为1,n+1位为0,其余的字节前两位为10,剩余的位拼起来是unicode码
了解后,再根据加密方式解密
enc【i】=flag【j】<<8+flag[j+1]
枚举确定适合的flag【j】
enc="灩捯䍔䙻ㄶ形楴獟楮獴㌴摟潦弸弲㘶㠴挲ぽ"
encd=[ord(enc[i]) for i in range(0, len(enc), 1)]
for i in range(0,len(enc)):
for j in range(0,127):
if(encd[i]-(j<<8)<=126 and encd[i]-(j<<8)>=0):
print(chr(j),end='')
print(chr(encd[i]-(j<<8)),end='')
得到flag
picoCTF{16_bits_inst34d_of_8_26684c20}