BUUCTF-MISC-04大白

题目:让图片全面显示宽高

更改高宽一致

发现大白没有完全显示,优先考虑到图片高度隐写,猜测是FLAG隐藏在少掉的部分里,所以需要修改图片的高度与宽一致

我们借助010工具完成操作

根据内容可以看到高和宽不一样,这时候,我们可以把高和宽改为一样的,而后右键保存后打开文件.,就可以看到flag了

图片内容详解

(固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头 (固定)四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13 (固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH) (可变)13位数据块(IHDR)前四个字节代表该图片的宽,后四个字节代表该图片的高 后五个字节依次为: Bit depth、ColorType、Compression method、Filter method、Interlace method (可变)剩余四字节为该png的CRC检验码,由从IDCH到IHDR的十七位字节进行crc计算得到。 文件尾:AE 42 60 82

图片尺寸为787x500(高x宽) 00 00 00 0D 说明IHDR头块长为13 49 48 44 52 IHDR标识 00 00 03 13 图像的宽,787像素 00 00 01 F4 图像的高,500像素 这里需要注意的是,文件宽度不能任意修改,需要根据 IHDR 块的 CRC 值爆破得到宽度,否则图片显示错误不能得到 flag

宽度如何更改?

通过以下方式查看crc

爆破crc的python代码

复制代码
import os
import binascii
import struct
​
crcbp = open("D:\\桌面文件\\bingbing.png", "rb").read()    #打开图片
for i in range(2000):
    for j in range(2000):
        data = crcbp[12:16] + \
            struct.pack('>i', i)+struct.pack('>i', j)+crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if(crc32 == 0xda5a4a50):    #图片当前CRC
            print(i, j)
            print('hex:', hex(i), hex(j))
相关推荐
智能体与具身智能7 小时前
TVA具身智能的概念、架构与应用(19)
人工智能·python·具身智能
2601_962294617 小时前
python中range函数怎么用
python·for循环·可迭代对象·range函数·整数列表
青 春 记 忆9 小时前
零基础入门python70:Docker Compose 编排完整后端
python·后端开发
新时代牛马9 小时前
字符设备驱动完整篇:从 cdev_add、file_operations 到chrdev_open 与排障
开发语言·python
Johny_Zhao9 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
白山编程大哥9 小时前
Java OutputStreamWriter 详解:从字符到字节的桥梁
java·开发语言·python
菩提小狗10 小时前
每日安全情报报告 · 2026-09-06
网络安全·漏洞·cve·安全情报·每日安全
落羽的落羽10 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
Chasing__Dreams10 小时前
大模型应用开发--13--RAG 查询优化策略
python
“AI国潮设计-小江”10 小时前
《Python实战 | SDXL大模型批量生成“英歌舞海浪”蛋糕IP,附核心Prompt控制代码与IP授权变现思路》
人工智能·python·prompt·aigc