buuctf_crypto_Morse+异性相吸+old fanshion

[AFCTF2018]Morse

题目:
在这里插入图片描述
乐了,我寻思可以水这题了,放摩斯解码里面:

https://www.lddgo.net/encrypt/morse
在这里插入图片描述

给个空格。。(试了,不是flag),最后思路是,将"/"换成空格,换完摩斯解码,解完发现还~不对,观察,范围0到F,十六进制转字符串。脚本放这了:

cstr='-..../.----/-..../-..../-..../...--/--.../....-/-..../-..../--.../-.../...--/.----/--.../...--/..---/--.../--.../....-/...../..-./--.../...--/...--/-----/...../..-./...--/...--/...--/....-/...--/...../--.../----./--.../-..'
estr=cstr.replace("/"," ")
print(estr)
#用网站解码estr得到hstr
hstr='61666374667B317327745F73305F333435797D'
print(bytes.fromhex(hstr).decode("utf-8"))

结果:afctf{1s’t_s0_345y}
flag{1s’t_s0_345y}

异性相吸

题目:
在这里插入图片描述

思路:key和密文转为2进制,二者做异或,异或的结果转为字符串
我先给正确的解法,解完后抛过程&问题
1.于010编辑器打开俩个文档:
在这里插入图片描述
2.脚本完成异或:

a = '0110000101110011011000010110010001110011011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011100010111011101100101011100110111000101100110'
b = '0000011100011111000000000000001100001000000001000001001001010101000000110001000001010100010110000100101101011100010110000100101001010110010100110100010001010010000000110100010000000010010110000100011000000110010101000100011100000101010101100100011101010111010001000001001001011101010010100001010000011011'
c = ''

for i in range(len(a)):
    if(a[i] == b[i]):
        c+='0'
    else:
        c+='1'
print(c)

运行结果:
0110011001101100011000010110011101111011011001010110000100110001011000100110001100110000001110010011100000111000001110010011100100110010001100100011011100110110011000100011011101100110001110010011010101100010001101010011010001100001001101110011010000110011001101010110010100111000001110010110010101111101
3.脚本二进制转字符

a='0110011001101100011000010110011101111011011001010110000100110001011000100110001100110000001110010011100000111000001110010011100100110010001100100011011100110110011000100011011101100110001110010011010101100010001101010011010001100001001101110011010000110011001101010110010100111000001110010110010101111101'
binary_string = "011001100110110001100001011001110111101101100101011000010011000101100010011000110011000000111001001110000011100000111001001110010011001000110010001101110011011001100010001101110110011000111001001101010110001000110101001101000110000100110111001101000011001100110101011001010011100000111001011001010111110"
text = ''.join([chr(int(binary_string[i:i+8], 2)) for i in range(0, len(binary_string), 8)])
print(text)

在这里插入图片描述
flag{ea1bc0988992276b7f95b54a7435e89e>}
附:中途想法及问题
“异性”相吸,我就应该想到0和1的。这里有个文本转二进制的脚本:

def string_to_binary(input_string):
    # 字符串编码为字节
    byte_array = input_string.encode()
    # 转换每个字节为二进制表示
    binary_array = [format(byte, '08b') for byte in byte_array]
    # 合并为一个字符串
    binary_string = ''.join(binary_array)
    return binary_string

# 示例
key = "asadsasdasdasdasdasdasdasdasdasdqwesqf"
code='ἇ̀Ј唒ဃ塔屋䩘卖剄䐃堂ن䝔嘅均ቄ䩝ᬔ'
strk = string_to_binary(key)
strc=string_to_binary(strk)
print(strk)
print(strc)

但好像转出来的和010编辑器的不一样
还有我不会用010将二进制转文本,所以这里用代码解决的

old fanshion

题目:
在这里插入图片描述
啥啊,用这个网站

https://quipqiup.com/

复制进直接点solve,往下划拉:

在这里插入图片描述
flag{n1_2hen-d3_hu1-mi-ma_a}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值