Python 取证 - 多处理支持

  • 简述

    法医专家通常发现很难应用数字解决方案来分析常见犯罪中的大量数字证据。大多数数字调查工具都是单线程的,一次只能执行一个命令。
    在本章中,我们将重点介绍 Python 的多处理功能,这可能与常见的取证挑战有关。
  • 多处理

    多处理被定义为计算机系统支持多个进程的能力。支持多处理的操作系统允许多个程序同时运行。
    有多种类型的多处理,例如symmetricasymmetric processing. 下图指的是取证调查中通常遵循的对称多处理系统。
    多处理

    例子

    以下代码显示了 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()有助于列出系统中的一组进程。

    输出

    我们的代码将产生以下输出 -
    多处理支持输出