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: