第一届巅峰极客

这个比赛真的是神仙打架,肉鸡划水到底,记下复现过程

misc

warmup

图片放去stegsolve看一下可以看见最低位有异常数据(最上面

具体分析就会看见

两个ook编码,一个brainfuck编码,剩下的就是解码了

这里有个注意的是,他的编码每一句都在后面加了个英文的句号(你是魔鬼吧??),解码时要把它去掉

  

拼在一起就是flag了

loli

有个二维码,手机扫不出,用QRresearch去扫一下

讲道理我没懂255这个tips是在提示什么,然后题目有个0xFF,异或一下然后去binwalk一下,就能看见有个png,foremost出来,

11列,每列都是八个点,联想到二进制,可能就是二进制转成ascii码对应回字母

人工转很麻烦,用个脚本帮忙转

from PIL import Image

def getBinaryToChar():
    count = 0
    ans = ""
    binStr = ""
    # 转换成灰度图像(黑点0,白点255)
    img = Image.open('2.png').convert('L')
    # 遍历像素点(按行读)
    width, height = img.size
    for h in range(height - 1): # 是否-1均可,最后一行是11个0111111111
        for w in range(width - 1):  # 需要-1,最后一列全是0
            pixel = img.getpixel((w, h))
            if pixel == 0:
                color = 1   # 黑点1
            else:
                color = 0   # 白点0
            # 9个点一组,构成0xxxxxxxx
            count += 1
            ans += str(color)
            if count == 9:
                if ans != "011111111":
                    binStr += chr(int(ans,2))  #int(ans,2)构建一个int,进制为二进制
                count = 0
                ans = ""
    return binStr

if __name__ == '__main__':
    s = getBinaryToChar()
    print(s)
    with open('res.txt', 'wb') as f:
        f.write(s.encode())

然后就看res.txt了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值