CTFSHOW misc入门

misc43

题目提示
在这里插入图片描述
根据提示中的错误想到用pngdebugger来分许发现发现所有IDAT块的crc32值都是错误的在这里插入图片描述
把错误信息存放到txt文档中
在这里插入图片描述
在这里插入图片描述

结合提示把,错误的crc提取出来,hex转字符串得到flag
这里附上脚本

# coding=utf-8
flag=""
a=[]
f=open("1.txt")
for i in range(83):
    s=f.readline()
    a.append(s)
    if("CRC0" in a[i]):
        flag=flag+a[i-1].split("=0x")[1][0:8]
    else:
        print("*****************")
print(flag)

然后将得到的16进制转字符串得到flag

misc24

用010editor 打开misc24.bmp看到文件真实大小为675056
在这里插入图片描述
文件头的长度为54在这里插入图片描述
文件尾部还有window补两位00 00
所以文件的真实大小为675056-54-2=675000
又因为每个像素点由3个字节(十六进制码6位)表示,每个字节负责控制一种颜色,分别为蓝(Blue)、绿(Green)、红(Red),所以文件真实的像素大小为:675000/3=225000

图片宽度是正确的这里求出高度为22500/900=250这里改为250保存后即可得到flag

misc39

一道gif时间间隔隐写题目
主要利用linux下的identify工具来隐写
基本的命令格式:
  identify [options] input-fileidentify:命令名称
  options:参数
  input-file:文件名。
identify -format "%T " misc39.gif > 1.txt
将文本中的37换成1,36换成0然后转字符串就得到flag(这里是七位二进制)

misc 红包第一弹

解压文件发现一堆压缩包,每个压缩包里都有一张不同的图片
在这里插入图片描述
解压出一张图片打开在文件末尾发现一串base64在这里插入图片描述
打开其他图片也一样发现不同的base64编码于是想到将所有图片末尾的编码复制拼接出来解密
由于工作量比较大这里用到脚本来提取数据

import os
flag=""
for i in range(1,87):
    path=str(i)+".jpg"
    num=os.path.getsize(path)       #获取文件大小
    # print(num)
    f=open(path,"rb")
    f.seek(int(num)-100)        #从文件倒数100个字节开始读取
    s=f.read(100)
    s=str(s,'utf-8')            #将bytes转为str类型
    flag=flag+s
print(flag)

然后将输出的数据base64转图片是一个二维码扫码得到flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值