知识点,阴阳怪气编码
解压出来一个txt文件,打开如下
没有等号,应该是十六进制,转换成十进制看看,先切片
string = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd"
sliced_list = [string[i:i+2] for i in range(0, len(string), 2)]
print(sliced_list) ##每两位切片
然后将十六进制转为十进制
decimal_list = [int(hex_num, 16) for hex_num in sliced_list]
print(decimal_list) ##将十六进制转换为十进制
这里可以发现列表里面的每个值都大于128,试试-128,然后转ASCII码
result_list = [num - 128 for num in decimal_list]
print(result_list) ##转换后的十进制数都大于128,将列表内的每个数都减128
ascii_list = [chr(decimal) for decimal in result_list]
print(ascii_list) ##将十进制数转换为ASCII码
然后把这些合并起来即可
merged_string = ''.join([elem for sublist in ascii_list for elem in sublist])
print(merged_string) ##最终合并为一个字符串
以上代码是我分开的,最后来个合并代码
最终代码
string = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd"
sliced_list = [string[i:i+2] for i in range(0, len(string), 2)]
print(sliced_list) ##每两位切片
decimal_list = [int(hex_num, 16) for hex_num in sliced_list]
print(decimal_list) ##将十六进制转换为十进制
result_list = [num - 128 for num in decimal_list]
print(result_list) ##转换后的十进制数都大于128,将列表内的每个数都减128
ascii_list = [chr(decimal) for decimal in result_list]
print(ascii_list) ##将十进制数转换为ASCII码
merged_string = ''.join([elem for sublist in ascii_list for elem in sublist])
print(merged_string) ##最终合并为一个字符串
最终flag
flag{922ab9974a47cd322cf43b50610faea5}