Python Forensics - Multiprocessing-Unterstützung

Forensiker finden es normalerweise schwierig, digitale Lösungen anzuwenden, um die Berge digitaler Beweise bei häufigen Verbrechen zu analysieren. Die meisten digitalen Untersuchungstools sind Single-Threaded-Tools und können jeweils nur einen Befehl ausführen.

In diesem Kapitel konzentrieren wir uns auf die Multiprozessor-Funktionen von Python, die sich auf die allgemeinen forensischen Herausforderungen beziehen können.

Mehrfachverarbeitung

Multiprocessing ist definiert als die Fähigkeit des Computersystems, mehr als einen Prozess zu unterstützen. Die Betriebssysteme, die Multiprocessing unterstützen, ermöglichen die gleichzeitige Ausführung mehrerer Programme.

Es gibt verschiedene Arten der Mehrfachverarbeitung, wie z symmetric und asymmetric processing. Das folgende Diagramm bezieht sich auf ein symmetrisches Multiprozessorsystem, das normalerweise bei forensischen Untersuchungen angewendet wird.

Beispiel

Der folgende Code zeigt, wie verschiedene Prozesse intern in der Python-Programmierung aufgelistet werden.

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."

Hier die Funktion list_append() Hilft bei der Auflistung der Prozesse im System.

Ausgabe

Unser Code erzeugt die folgende Ausgabe: