PNG图片宽高crc32爆破代码 您所在的位置:网站首页 修改png图片宽和高的脚本 PNG图片宽高crc32爆破代码

PNG图片宽高crc32爆破代码

2024-07-10 00:03| 来源: 网络整理| 查看: 265

开始阅读之前,请确认是否处于这个地址,这是对本菜鸟辛勤码字最大的鼓励,感激不尽!

用winhex打开图片,前面 89 50 4e 47打头就是PNG格式的图片。 在这里插入图片描述 红框是IHDR标识,橙框是文件头,蓝框是crc检验码。

其它PNG图片的文件格式解析自行了解,这里简单粗暴上代码

# coding:utf8 # python3 # Clover modified on 2022/05/13 import zlib import struct import sys crc32key = 0x35FD4C38 #crc校验码,前面补上0x告诉编译器这个是16进制数字 data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xCE\x00\x00\x01\x49\x08\x06\x00\x00\x00') #从IHDR开始复制复制4+13=17个字节。 n = 1080 #理论上四个字节分辨率最高可以是65535,但一般图象分辨率不超过1080 for w in range(n):#高和宽不对都会影响CRC32的值,所以要一起爆破 width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节 #Clover:不知道上面说的q和h是什么,i代表整形,4个字节存放,所以设置'i'输出才是4个字节 for h in range(n): height = bytearray(struct.pack('>i', h))#'>' means big-endian, 高位在前 #Clover:1080最多用到16进制的低三位,其他情况自己改下代码 for x in range(2,4): data[x+4] = width[x] data[x+8] = height[x] crc32result = zlib.crc32(data) if crc32result == crc32key: print(width,height) #找到了,结束程序 sys.exit(0)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有