python如何检测安装文件损坏_【工具分享】PCRT:一款自动化检测修复PNG损坏的取证工具...

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

简介

工具使用Python2.7编写, 旨在实现检查并自动化修复损坏的PNG图像,可用于恢复取证中提取到的缺失的图片流,或者提取隐藏在PNG图片中的恶意样本。

具体包括:

显示图片文件信息

修复PNG文件头错误

修复由于错误的图片长度或宽度导致的IHDR块crc校验出错

修复由于DOS->UNIX平台自动格式转换导致的部分IDAT块数据长度出错

修复由于自身错误导致的IDAT块crc校验出错

修复丢失的IEND块

提取追加在IEND块后的数据

自动显示修复后的图片

添加payload到图片文件

根据图片有限压缩数据尽可能恢复并显示

特点

支持跨平台运行(Windows/Linux/Mac OS)

支持窗口打开待修复文件,无需手动输入文件路径

自动化检测修复问题

支持修复结果即时显示

支持提取追加在IEND块后的数据(恶意程序常使用的传播方式)

支持插入payload到辅助块/关键块

修复结果去除所有辅助块

安装

安装 Python 2.7

安装需要的Python 依赖包

Tkinter

ctypes (For Windows)

拷贝源码到本地

git clone https://github.com/sherlly/PCRT.git

cd PCRT

python PCRT.py

使用方法

> python PCRT.py -h

usage: 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 PAYLOAD

payload to hide

-w WAY, --way WAY     payload chunk: [1]: ancillary [2]: critical

[Default:1]

-d DECOMPRESS, --decompress DECOMPRESS

decompress zlib data file name

-i INPUT, --input INPUT

Input file name (*.png) [Select from terminal]

-f, --file            Input file name (*.png) [Select from window]

-o OUTPUT, --output OUTPUT

Output repaired file name [Default: output.png]

[注意]如果不添加 -v 选项则默认所有IDAT块长度均合法, 即不出现声明的IDAT数据块长度和实际数据长度不符合的情况。

示例

以IHDR.png为例显示图片信息

以0707.png为例修复IHDR块crc校验出错

以corrupt.png为例修复DOS->UNIX自动格式转换导致的IDAT块数据长度出错

以append.png为例提取附加在IEND块后的数据

以IHDR.png为例添加payload

以new.bin为例对以Deflate方式压缩的数据进行解析展示

附:文中示例文件已放入PCRT/examples文件夹下

项目地址

欢迎提交issue,如有更好的想法也可以一起交流:)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值