0x01 概述
Python2.7
旨在实现检查并自动化修复损坏的 PNG 图像,可用于恢复取证中提取到的缺失的图片流,或者提取隐藏在 PNG 图片中的恶意样本。
0x02 功能
显示图片文件信息
修复PNG文件头错误
修复由于错误的图片长度或宽度导致的IHDR块crc校验出错
修复由于DOS->UNIX平台自动格式转换导致的部分IDAT块数据长度出错
修复由于自身错误导致的IDAT块crc校验出错
修复丢失的IEND块
提取追加在IEND块后的数据
自动显示修复后的图片
添加payload到图片文件
根据图片有限压缩数据尽可能恢复并显示
…
0x03 特点
支持跨平台运行(Windows/Linux/Mac OS)
支持窗口打开待修复文件,无需手动输入文件路径
自动化检测修复问题
支持修复结果即时显示
支持提取追加在IEND块后的数据
支持插入payload到辅助块/关键块
修复结果去除所有辅助块
0x04 安装
python 2.7
所需依赖:
Tkinter
For Python 3sudo apt-get install python3-tkFor Python 2.7sudo apt-get install python-tk
PIL
Python2.7 安装 PIL 失败解决方法:pip install Pillow
ctypes (For Windows)
下载源码至本地
git clone /sherlly/PCRT.gitcd PCRTpython PCRT.py
官方示例
> python PCRT.py -husage: PCRT.py [-h] [-q] [-y] [-v] [-m] [-n NAME] [-p PAYLOAD] [-w WAY][-d DECOMPRESS] [-i INPUT] [-f] [-o OUTPUT]optional arguments:-h, --help show this help message and exit-q, --quiet don't show the banner infomation-y, --yes auto choose yes-v, --verbose use the safe way to recover-m, --message show the image information-n NAME, --name NAME payload name [Default: random]-p PAYLOAD, --payload PAYLOADpayload to hide-w WAY, --way WAYpayload chunk: [1]: ancillary [2]: critical[Default:1]-d DECOMPRESS, --decompress DECOMPRESSdecompress zlib data file name-i INPUT, --input INPUTInput file name (*.png) [Select from terminal]-f, --file Input file name (*.png) [Select from window]-o OUTPUT, --output OUTPUTOutput repaired file name [Default: output.png]
具体使用方法就不在此演示了,关键是我使用的过程中并没有得到预期结果。
可能是安装的过程有问题?