0x00 考察知识点
这道题主要考察2进制,16进制,以及base64的偏移问题,要多一个思路就是,可能每一个解不开的码都有可能做了偏移,这里就是考察是否熟悉base64的思路
工具
已上传csdn,之后更新
0x01 题目
00110011 00110011 00100000 00110100 00110101 00100000 00110101 00110000 00100000 00110010 01100110 00100000 00110011 00110011 00100000 00110101 00110110 00100000 00110100 01100101 00100000 00110100 00110110 00100000 00110100 00110110 00100000 00110110 01100100 00100000 00110100 01100101 00100000 00110100 00110101 00100000 00110100 00110001 00100000 00110110 01100101 00100000 00110110 01100011 00100000 00110100 00111000 00100000 00110100 00110100 00100000 00110011 00110101 00100000 00110110 00110100 00100000 00110100 00110011 00100000 00110100 01100100 00100000 00110110 01100100 00100000 00110101 00110110 00100000 00110100 00111000 00100000 00110100 00110100 00100000 00110011 00110101 00100000 00110110 00110001 00100000 00110110 00110100 00100000 00110011 00111001 00100000 00110111 00110101 00100000 00110100 00110111 00100000 00110000 01100001
0x02 Write Up
首先清除一下二进制中间的空格
然后2进制转文本
16进制转文本
这里发现一串字符串,感觉是base64,但是解不开 3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG
已知flag base64之后是:
根据编码表进行对比,那么就会知道,3和Z偏差为30,那么进行偏移
脚本:
s= '3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG'
t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
l=""
for i in s:
l += t[(t.index(i)-30)%64]
if len(l)%4!=0:
l=l+"="*(4-(len(l)%4))
print(l)
得到base64,然后解码: