Python Digital Forensics 简明教程

Artifact Report

现在您已熟悉在本地系统上安装和运行 Python 命令,让我们详细了解取证概念。本章将解释与处理 Python 数字取证中的痕迹有关的各种概念。

Need of Report Creation

数字取证的过程包括报告作为第三阶段。这是数字取证过程最重要的部分之一。由于以下原因,需要进行报告创建:

  1. 它是数字取证检查员概述调查过程及其调查结果的文件。

  2. 另一个检查员可以参考一份良好的数字取证报告,通过给出相同的存储库来获得相同的结果。

  3. 这是一份技术和科学文件,包含在数字证据的 1 和 0 内发现的事实。

General Guidelines for Report Creation

报告的目的是向读者提供信息,并且必须具有一个坚实的基础。如果在没有一些一般准则或标准的情况下准备报告,调查人员可能会在有效地提供调查结果时遇到困难。创建数字取证报告时必须遵循一些一般准则,如下所示:

  1. Summary - 报告必须包含信息的简要摘要,以便读者能确定报告的目的。

  2. Tools used - 我们必须提到用于执行数字取证过程的工具,包括其用途。

  3. Repository - 假设,我们调查了某人的计算机,然后证据的摘要和电子邮件、内部搜索历史等相关材料的分析必须包含在报告中,以便可以清楚地说明案件。

  4. Recommendations for counsel − 报告必须含有建议,指示法律顾问在根据报告中的调查结果审理案件。

Creating Different Type of Reports

在上述部分中,我们了解到报告在数字取证中的重要性,以及创建报告的指导原则。以下是用于创建不同类型报告的一些 Python 格式−

CSV Reports

最常见的报告输出格式之一是 CSV 电子表格报告。你可以使用 Python 代码创建 CSV 来创建已处理数据报告,如下所示−

首先,导入有用的库来编写电子表格−

from __future__ import print_function
import csv
import os
import sys

现在,调用以下方法−

Write_csv(TEST_DATA_LIST, ["Name", "Age", "City", "Job description"], os.getcwd())

我们使用以下全局变量表示样本数据类型−

TEST_DATA_LIST = [["Ram", 32, Bhopal, Manager],
   ["Raman", 42, Indore, Engg.],
   ["Mohan", 25, Chandigarh, HR],
   ["Parkash", 45, Delhi, IT]]

接下来,让我们定义继续进行其他操作的方法。我们在“w”模式下打开文件,并将换行关键字参数设置为一个空字符串。

def Write_csv(data, header, output_directory, name = None):
   if name is None:
      name = "report1.csv"
   print("[+] Writing {} to {}".format(name, output_directory))

   with open(os.path.join(output_directory, name), "w", newline = "") as \ csvfile:
      writer = csv.writer(csvfile)
      writer.writerow(header)
      writer.writerow(data)

如果你运行上述脚本,你将得到存储在 report1.csv 文件中的以下详细信息。

Name

Age

City

Designation

Ram

32

Bhopal

Managerh

Raman

42

Indore

Engg

Mohan

25

Chandigarh

HR

Parkash

45

Delhi

IT

Excel Reports

报告的另一个常见输出格式是 Excel(.xlsx)电子表格报告。我们可以使用 Excel 创建表格并绘制图表。我们可以使用 Python 代码以 Excel 格式创建已处理数据报告,如下所示−

首先,导入 XlsxWriter 模块来创建电子表格−

import xlsxwriter

现在,创建一个工作簿对象。为此,我们需要使用 Workbook() 构造函数。

workbook = xlsxwriter.Workbook('report2.xlsx')

现在,使用 add_worksheet() 模块创建一个新工作表。

worksheet = workbook.add_worksheet()

接下来,将以下数据写入工作表 −

report2 = (['Ram', 32, ‘Bhopal’],['Mohan',25, ‘Chandigarh’] ,['Parkash',45, ‘Delhi’])

row = 0
col = 0

您可以迭代这些数据,并按如下方式写入 −

for item, cost in (a):
   worksheet.write(row, col, item)
   worksheet.write(row, col+1, cost)
   row + = 1

现在,让我们使用 close() 方法关闭此 Excel 文件。

workbook.close()

上面的脚本将创建一个名为 report2.xlsx 的 Excel 文件,其中包含以下数据 −

Ram

32

Bhopal

Mohan

25

Chandigarh

Parkash

45

Delhi

Investigation Acquisition Media

对调查者来说,拥有详细的调查记录非常重要,以便准确回忆调查结果或将所有调查环节整理到一起。截图对于跟踪特定调查所采取的步骤非常有用。借助以下 Python 代码,我们可以截屏并将其保存在硬盘上以备将来使用。

首先,使用下列命令安装名为 pyscreenshot 的 Python 模块 −

Pip install pyscreenshot

现在,导入必要的模块,如下所示 −

import pyscreenshot as ImageGrab

使用以下代码行获取屏幕截图 −

image = ImageGrab.grab()

使用以下代码行将屏幕截图保存到给定位置 −

image.save('d:/image123.png')

现在,如果您想将屏幕截图弹出一个图表,可以使用以下 Python 代码 −

import numpy as np
import matplotlib.pyplot as plt
import pyscreenshot as ImageGrab
imageg = ImageGrab.grab()
plt.imshow(image, cmap='gray', interpolation='bilinear')
plt.show()