BUUCTF_Misc_[DDCTF2018](╯°□°)╯︵ ┻━┻
题目给了这么一串字符串:
d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd
一共134位,不考虑古典密码,base家族也解不出来,
观察到基本上都是一个字母加上一个数字,所以考虑先把他们两两分组,
'd4', '4e', 'e8', '8e', 'e1', '1f', 'f4', '4a', 'a0', '0f', 'f7', '7e', 'e1', '1f', 'f3', '3a', 'a0', '0e', 'e6', '6e', 'e1', '1f', 'f3', '3f', 'f4', '4a', 'a1', '1a', 'a0', '0d', 'd4', '4e', 'e8', '8e', 'e5', '5a', 'a0', '0e', 'e6', '6e', 'ec', 'ce', 'e1', '1e', 'e7', '7a', 'a0', '0e', 'e9', '9f', 'f3', '3b', 'ba', 'aa', 'a0', '0c', 'c4', '4c', 'c4', '4c', 'c3', '3d', 'd4', '4c', 'c6', '6f', 'fb', 'bb', 'b9', '9b', 'b2', '2b', 'b2', '2e', 'e1', '1e', 'e2', '2b', 'b9', '9b', 'b9', '9b', 'b7', '7b', 'b4', '4e', 'e1', '1b', 'b4', '4b', 'b7', '7e', 'e3', '3e', 'e4', '4b', 'b3', '3b', 'b2', '2b', 'b2', '2e', 'e3', '3e', 'e6', '6b', 'b4', '4b', 'b3', '3e', 'e2', '2b', 'b5', '5b', 'b0', '0b', 'b6', '6b', 'b1', '1b', 'b0', '0e', 'e6', '6e', 'e1', '1e', 'e5', '5e', 'e1', '1b', 'b5', '5f', 'fd'
然后转十六进制,再转十进制,得到:
[212, 232, 225, 244, 160, 247, 225, 243, 160, 230, 225, 243, 244, 161, 160, 212, 232, 229, 160, 230, 236, 225, 231, 160, 233, 243, 186, 160, 196, 196, 195, 212, 198, 251, 185, 178, 178, 225, 226, 185, 185, 183, 180, 225, 180, 183, 227, 228, 179, 178, 178, 227, 230, 180, 179, 226, 181, 176, 182, 177, 176, 230, 225, 229, 225, 181, 253]
发现都大于128,所以都减128,最后转ascii码得到flag.
脚本:
key='d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd' hex=[] flag='' for i in range(0,len(key)-1,2): zdh=key[i:i+2] hex.append(zdh) for i in range(len(hex)): zdh1=hex[i] flag+=chr(int(int(zdh1,16))-128) print(flag)
flag{922ab9974a47cd322cf43b50610faea5}