1. 程式人生 > >PNG圖片隱寫IDAT分析(3)

PNG圖片隱寫IDAT分析(3)

使用工具pngcheck

命令:pngcheck.exe -v sctf.png
這裡寫圖片描述

發現有個異常的IDAT 0X15aff7
這裡寫圖片描述

一共提權138位。

使用zlib進行壓縮,程式碼如下:

#! /usr/bin/env python

import zlib

import binascii

IDAT = "789C5D91011280400802BF04FFFF5C75294B5537738A21A27D1E49CFD17DB3937A92E7E603880A6D485100901FB0410153350DE83112EA2D51C54CE2E585B15A2FC78E8872F51C6FC1881882F93D372DEF78E665B0C36C529622A0A45588138833A170A2071DDCD18219DB8C0D465D8B6989719645ED9C11C36AE3ABDAEFCFC0ACF023E77C17C7897667"
.decode('hex') #print IDAT result = binascii.hexlify(zlib.decompress(IDAT)) print (result.decode('hex')) print (len(result.decode('hex')))

得到壓縮後的檔案:
這裡寫圖片描述

發現是626猜想是一個二維碼的矩陣:
使用程式碼做成二維碼:
程式碼如下:

from PIL import Image
from zlib import *

MAX = 25
pic = Image.new("RGB",(MAX,MAX))
str ="1111111000100001101111111100000101110010110100000110111010100000000010111011011101001000000001011101101110101110110100101110110000010101011011010000011111111010101010101111111000000001011101110000000011010011000001010011101101111010101001000011100000000000101000000001001001101000100111001111011100111100001110111110001100101000110011100001010100011010001111010110000010100010110000011011101100100001110011100100001011111110100000000110101001000111101111111011100001101011011100000100001100110001111010111010001101001111100001011101011000111010011100101110100100111011011000110000010110001101000110001111111011010110111011011"
i=0 for y in range(0,MAX): for x in range(0,MAX): if(str[i] == '1'): pic.putpixel([x,y],(0,0,0)) else:pic.putpixel([x,y],(255,255,255)) i = i+1 pic.show() pic.save("flag.png")

執行得到二維碼:
這裡寫圖片描述