Python 取证学 - 多进程支持



通常情况下,取证专家很难运用数字解决方案分析大量常见的犯罪中出现的数字证据。大多数数字调查工具都是单线程的,一次只能执行一个命令。

本章,我们专注于 Python 的多进程功能,可以应对常见的取证挑战。

多进程

多进程是指计算机系统支持多个进程的能力。支持多进程的操作系统可以同时运行多个程序。

多进程有不同的类型,例如对称非对称处理。下图引用了通常在取证调查中遵循的对称多进程系统。

Multiprocessing

示例

以下代码展示了在 Python 编程中不同进程在内部如何列出。

import random
import multiprocessing

def list_append(count, id, out_list): 
   #appends the count of number of processes which takes place at a time
   for i in range(count):
      out_list.append(random.random())
         
   if __name__ == "__main__": 
      size = 999  
      procs = 2
      # Create a list of jobs and then iterate through 
      # the number of processes appending each process to 
      # the job list  
      jobs = []
         
   for i in range(0, procs): 
      out_list = list() #list of processes 
      process1 = multiprocessing.Process(
         target = list_append, args = (size, i, out_list))

      # appends the list of processes
      jobs.append(process)

   # Calculate the random number of processes
   for j in jobs:
      j.start()  #initiate the process

   # After the processes have finished execution
   for j in jobs:
      j.join()
      print "List processing complete."

这里,函数list_append()帮助在系统中列出进程集合。

输出

我们的代码会产生如下输出 −

Multiprocessing Support Output
广告