ctfshow_crypto_妈呀完了writeup

一、题目原题

题目给了一串01和一个png图片,打开看了提示说“图文无关”:
题目原题
图片附件如下:
题目png文件

二、解题步骤

1.去掉01串中的空格

想到先把01串转换成字符串看看,于是复制01二进制串,粘贴时发现有很多空格,浅写一句Python的replace函数把空格去掉:

c='01000100 01010011 01111001 00110011 01001010 01111001 01001011 01110110 01010000 01000011 01010000 01101101 01001000 00110100 01010111 01000011 01111010 00101011 01010100 01101000 01010111 01101001 00110010 01000110 01100111 01001011 01101111 00111001 01100101 01010011 01010000 01010101 00110100 01100101 00110101 01100111 00101011 01101010 01011010 01010101 00110011 01000110 01110010 01010111 01001110 01110110 01001100 01001101 00110101 00110101 01101011 01000101 01100110 00110001 01101000 01000101 01101101 01001110 01110010 01110101 00101011 01001110 01000101 00110011'
c=c.replace(' ','')

效果如下:
去掉空格

2.把01二进制串转换成十进制数

用Python的int(c,2)函数,将上面内容是01二进制的字符串c转换成十进制整数:

 num=int(c,2)

3.将十进制整数转换成bytes

调用n2s函数,将十进制整数转换成bytes,其实就是每8个bit转换成一个字符

from libnum import *
n2s(num)

解题过程

得到了一串字符如下:

DSy3JyKvPCPmH4WCz+ThWi2FgKo9eSPU4e5g+jZU3FrWNvLM55kEf1hEmNru+NE3

看起来像base64但无法解码得到像flag的结果。

到这里就不会了,看图片不知道代表了啥,而hint又说和图片无关……用百度识图得知图片上的是玛雅数字,但是还是不会做,去搜了别的师傅写的wp,得知原来这串字符是AES加密的结果,密钥是20121221,借助在线工具做了AES解密,得到flag。
AES解密
flag: flag{第13个伯克盾将会结束}

三、后记

偶然看到的一道题,感觉很需要脑洞
顺便感慨一下,20121221真的已经好遥远了啊……当时看《2012》还是初中,是和几个同学一起在英语的课外兴趣班上看的,那个年龄真的是天真烂漫,有好多梦想……现在呢,学也学不会,躺又躺不平,担心被裁员,认识到自己有好多做不到的事情(哭
速写这篇文章的原因……主要是想要那个3.8妇女节的电子勋章,结果一看质量分66不足70(

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值