标签:bytearray 七月 十八号 plt import x00 data png
复现了几道古早题
[鹏城杯]Misc_water
两个文件,一个加密的压缩包和一张png
自然解压密码应该从png入手
010打开发现后面跟了一png,foremost分离
题目叫misc_water,那肯定和水印有关,可这两张熊猫头的分辨率不一样
陷入盲区,遂上网WP
010查看原始图片,在两张png数据的中间有一段逆序的jpg,将它提取再逆序
with open('C:\\Users\\VucLe\\Desktop\\Misc_water\\1', 'rb') as f: with open('C:\\Users\\VucLe\\Desktop\\Misc_water\\flag.jpg', 'wb') as g: g.write(f.read()[::-1])
傅里叶盲水印
import cv2 as cv import numpy as np import matplotlib.pyplot as plt img = cv.imread('C:\\Users\\VucLe\\Desktop\\output_Mon_Jul_18_14_55_57_2022\\png/flag.jpg', 0) #直接读为灰度图像,不过此题已经是灰度图片了 f = np.fft.fft2(img) #做频率变换 fshift = np.fft.fftshift(f) #转移像素做幅度谱 s1 = np.log(np.abs(fshift))#取绝对值:将复数变化成实数取对数的目的为了将数据变化到0-255 plt.subplot(121) plt.imshow(img, 'gray') plt.title('original') plt.subplot(122) plt.imshow(s1,'gray') plt.title('center') plt.show()
压缩包密码:ZC4#QaWbW
解压得到jpg
010看了下是png的头,改后缀
再010打开报错,应该是长宽被修改过
修复CRC
#coding=utf-8 import zlib import struct #读文件 file = 'C:\\Users\\VucLe\\Desktop\\Misc_water\\show/1.png' #注意,1.png图片要和脚本在同一个文件夹下哦~ fr = open(file,'rb').read() data = bytearray(fr[12:29]) crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",'')) #crc32key = 0xCBD6DF8A #补上0x,copy hex value #data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00') #hex下copy grep hex n = 4095 #理论上0xffffffff,但考虑到屏幕实际,0x0fff就差不多了 for w in range(n):#高和宽一起爆破 width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节 for h in range(n): height = bytearray(struct.pack('>i', h)) for x in range(4): data[x+4] = width[x] data[x+8] = height[x] #print(data) crc32result = zlib.crc32(data) if crc32result == crc32key: print(width,height) #写文件 newpic = bytearray(fr) for x in range(4): newpic[x+16] = width[x] newpic[x+20] = height[x] fw = open(file,'wb')#保存副本 fw.write(newpic) fw.close
标签:bytearray,七月,十八号,plt,import,x00,data,png
来源: https://www.cnblogs.com/vuclw/p/16491576.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。