BUUCTF-[DDCTF2018](╯°□°)╯︵ ┻━┻

知识点,阴阳怪气编码

解压出来一个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}

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值