BMZCTF:凯撒也喜欢二进制

http://www.bmzclub.cn/challenges#%E5%87%AF%E6%92%92%E4%B9%9F%E5%96%9C%E6%AC%A2%E4%BA%8C%E8%BF%9B%E5%88%B6

在这里插入图片描述
cipher.txt
在这里插入图片描述
在这里插入图片描述
8为二进制一组,发现最后一组少了一位,在二进制数据前加一个0,然后Python简单处理

with open('cipher.txt') as f:
    f = f.read()
    for i in range(0,len(f),8):
        print(chr(int(f[i:i+8],2)),end="")
MM2WMMBZMNSTKZLGHFRWCZDCGNRDGYRRME4DSY3EMRSWCZJQHFRWGOLFMVQWCOLDMM3GIZDFMVTDEZJVMVTDSY3DHBSWEZLFMVSWMNJZMNSTKZLGHFRWMMDFMVSGIZRSMUYWKODFGVSWCZJTHFRWMMDFMI4WGYZQMVRGMMTFGFSWKOLDMYYGKYRZMNSTSZJRMUYWMMBZMNRTQZRRMRTGKNLFGE4WGYZZMRSGKYLFGFTDAZRQMUYWCYJZMNRTIZJRHFRWMMDFGFSTQZJYMVTDSY3FGRSTCZLFHFRWMMDFGRSGIZRQHFRWKZTFGRSTCOLDMU2WKZRZMNSWCZLCMYYDSY3EMRSWCOLDMVRGKZLFMNSTIZDEMVQTSY3EMRSWMOLDMVTGKNDFGE4WGZJUMRSGKMBZMNSGKZJRMUYWKYJZMNTDAZLCMU4GKMBZMNSTEZLFMVRGKOJZMNSGIOLDMY2WKYTGGFSWCZJTHFRWIZDFGNSTCYLBHFRWKMTFHBSGIZJTMY3WEMTFGFRDCZJQMIZGKMLBMZRDKZDFMIYWCZLFGBRDKZJRMIZWKMLBMNSGMYRSMIZWCZDCGFQWMZDEMIZGCY3EMZSGKYRRMRTGCZTEMZTDSOLDMM2GKMJZMNSWCZLCMYZTSY3FMZSGIZRVMVTDSY3GGBSTIZDEMYYDSY3FGRSTCOLDMYZWKNLFHBSTQOLDMYYGKZLEMRTDEZJRMU4DSY3GGNSTKZRQMU2DSY3FGRSTCZLFHFRWMMDFMI4WGY3DMRSGKZLFGVSWMOLDMYYGKYRZMNSTSZJRMUYWMMBZMNSTIZJRMVSTSY3FGJSGIZRQMU2GKMLFMVQTQOLDMYZWKNDFMI4WGZJUMRSGKZRZMNSWKZJRMRTGKMLFMFTDAZJYMY2TSY3EMVSTCZJRMVQTSY3FMVSTCZJYMUYWIZDFMZSTCZJQHFRWKMTFMVSWEZJZHFRWMMDFGRSTCOLDMJSWIZDFMZTDAZJVMU4GKODFGFQWC===

base32

c5f09ce5ef9cadb3b3b1a89cddeae09cc9eeaa9cc6ddeef2e5ef9cc8ebeeeef59ce5ef9cf0eeddf2e1e8e5eae39cf0eb9cc0ebf2e1ee9cf0eb9ce9e1e1f09cc8f1dfe5e19cc9ddeae1f0f0e1aa9cc4e19cf0e1e8e8ef9ce4e1ee9cf0e4ddf09cefe4e19ce5ef9ceaebf09cddea9cebeeece4ddea9cddef9cefe4e19ce4dde09cdee1e1ea9cf0ebe8e09ce2eeebe99cdd9cf5ebf1eae39cdde3e1aa9ce2e8dde3f7b2e1b1e0b2e1afb5deb1aee0b5e1b3e1acdfb2b3adb1afddb2acdfdeb1dfafdff99cc4e19ceaebf39cefddf5ef9cf0e4ddf09ce4e19cf3e5e8e89cf0eeddf2e1e89cf3e5f0e49ce4e1ee9cf0eb9cccddeee5ef9cf0eb9ce9e1e1f09ce4e1ee9ce2ddf0e4e1eea89cf3e4eb9ce4ddef9ceee1dfe1eaf0e8f59cdee1e1ea9ceee1e8e1ddefe1e09ce2eeebe99cf0e4e19cbeddeff0e5e8e8e1aa

得到一组hex数据,接下来应该就是根据凯撒的提示,来进行移位,观察hex发现普遍值较大,尝试减位。Python简单处理

with open('cipher.txt') as f:
    f = f.read()
    for sub in range(200):
        flag = ''
        for i in range(0,len(f),2):
            data = int(f[i:i+2],16)
            data = data - sub
            try:
                flag += chr(data)
            except:
                pass
        if 'flag{' in flag:
            print(flag)
        else:
            pass

在这里插入图片描述

flag{6e5d6e39b52d9e7e0c67153a60cb5c3c}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

末 初

谢谢老板~感谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值