[DDCTF2018](╯°□°)╯︵(两种方法实现送python脚本)

这串数字是小写字母和数字,怀疑是16进制,到下方链接网站去转换下看看

ASCII文本,十六进制,二进制,十进制,Base64转换器

ascii全乱码,没线索 10进制都很大,去ascii码表看看

ASCII 表,发现ASCII共95个可显示字符和33个控制字符,合计128个用10进制数字0-127表示,

下面数字我们都减去128试试

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

用python

data = "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"

numbers = data.split()  # 以空格分隔字符串中的数字

result = []

for number in numbers:

    number = int(number) - 128  # 将每个数字减去128

   

    result.append(str(number))

result_data = "  ".join(result)  # “ ”留空就以以空格分隔数字并重新组合成字符串

print(result_data)

#运行以上脚本,输出格式为:"-118 -88 -98 -68"。

84  104  97  116  32  119  97  115  32  102  97  115  116  33  32  84  104  101  32  102  108  97  103  32  105  115  58  32  68  68  67  84  70  123  57  50  50  97  98  57  57  55  52  97  52  55  99  100  51  50  50  99  102  52  51  98  53  48  54  49  48  102  97  101  97  53  125

DDCTF{922ab9974a47cd322cf43b50610faea5}

flag{922ab9974a47cd322cf43b50610faea5}

总结一下解题过程:16进制->转10进制->都减去128为ASCII码->转字符,python一步实现


hex_string = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd"

# 将16进制字符串转换为10进制整数列表
decimal_list = [int(hex_string[i:i+2], 16) for i in range(0, len(hex_string), 2)]

# 将每个整数减去128得到ASCII码
ascii_list = [chr(decimal - 128) for decimal in decimal_list]

# 将ASCII码列表转换为字符串
result = ''.join(ascii_list)

print(result)


#运行以上脚本,将会输出转换后的字符串。请注意,如果给定的字符串是乱码,转换后的结果可能不是可读的文本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值