Python Forensics 简明教程

Python Forensics - Python Imaging Library

从可用资源中提取有价值的信息是数字取证的重要组成部分。获取所有可用信息对于调查过程至关重要,因为它有助于检索适当的证据。

包含数据的资源可以是简单的数据结构(如数据库)或复杂的数据结构(如 JPEG 图像)。可以使用简单的桌面工具轻松访问简单数据结构,而从复杂数据结构中提取信息需要复杂的编程工具。

Python Imaging Library

Python Imaging Library (PIL) 为您的 Python 解释器增加了图像处理功能。该库支持多种文件格式,并提供了强大的图像处理和图形功能。可以从 http://www.pythonware.com/products/pil/ 下载 PIL 的源文件

以下插图显示了使用 PIL 从图像(复杂数据结构)中提取数据的完整流程图。

python imaging library

Example

现在,我们来看一个编程示例,了解它实际是如何工作的。

Step 1 − 假设我们有以下图像,我们需要从中提取信息。

python imaging library step1

Step 2 − 当我们使用 PIL 打开此图像时,它会首先注意到提取证据所需的必要点,其中包括各种像素值。以下是用于打开图像并记录其像素值:

from PIL import Image
im = Image.open('Capture.jpeg', 'r')
pix_val = list(im.getdata())
pix_val_flat = [x for sets in pix_val for x in sets]
print pix_val_flat

Step 3 − 提取图像像素值后,我们的代码将生成以下输出。

python imaging library step3

提供的输出代表 RGB 组合的像素值,它可以更好地说明什么数据是证据所需。获取的数据以数组形式表示。