CRC即循环冗余检查(Cyclic Redundancy Check)
这是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者存储之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。一般来说,循环冗余校验的值都是32位的整数。由于本函数易于用二进制的计算机硬件使用、容易进行数学分析并且尤其善于检测传输通道干扰引起的错误,因此获得广泛应用
在杂项图片题中会出现相关题目
以ctfshow misc入门 misc25为例
使用010 打开图片
开头的0~7八个字节为png的文件头:89 50 4E 47 0D 0A 1A 0A (固定格式)
8~11四个字节:00 00 00 0D 表示头部数据块的长度为13(固定格式)
12~15四个字节:49 48 44 52 表示文件头数据块的标示(固定格式)
16~19四个字节:00 00 03 84表示图片的宽(不固定)
20~23四个字节:00 00 00 96表示图片的高(不固定)
24~28五个字节:08 02 00 00 00表示图像深度、颜色类型、 压缩方法、滤波器方法、 隔行扫描方法 这五个字节不固定,均为可变数据
29~32四个字节:76 EC 1E 40为图片的crc校验值由从第12个字节到第28个字节的十七位字节进行crc计算得到
我们可以使用crc在线计算网站
输入第12到第28共十七位字节 参数模型选择crc32
得到校验值为09 DA D1 61,与图片校验值76 EC 1E 40不等,说明该图片crc校验有问题。一般是由于高度或者宽度所引起的,这里需要用到脚本对其宽高进行爆破 或者直接使用010修改