Python Forensics - Panoramica di Python
I codici scritti in Python sembrano abbastanza simili ai codici scritti in altri linguaggi di programmazione convenzionali come C o Pascal. Si dice anche che la sintassi di Python sia fortemente presa in prestito da C. Ciò include molte delle parole chiave Python che sono simili al linguaggio C.
Python include istruzioni condizionali e di ciclo, che possono essere utilizzate per estrarre i dati accuratamente per la scientifica. Per il controllo del flusso, fornisceif/else, whilee un livello elevato for istruzione che esegue il ciclo su qualsiasi oggetto "iterabile".
if a < b:
max = b
else:
max = a
L'area principale in cui Python differisce da altri linguaggi di programmazione è il suo utilizzo di dynamic typing. Utilizza nomi di variabili che si riferiscono a oggetti. Queste variabili non devono essere dichiarate.
Tipi di dati
Python include una serie di tipi di dati incorporati come stringhe, booleani, numeri, ecc. Esistono anche tipi immutabili, il che significa che i valori non possono essere modificati durante l'esecuzione.
Python ha anche tipi di dati incorporati composti che includono tuples che sono array immutabili, lists, e dictionariesche sono tabelle hash. Tutti sono utilizzati nella medicina legale digitale per memorizzare i valori mentre si raccolgono prove.
Moduli e pacchetti di terze parti
Python supporta gruppi di moduli e / o pacchetti che vengono anche chiamati third-party modules (codice correlato raggruppato insieme in un unico file sorgente) utilizzato per organizzare i programmi.
Python include una vasta libreria standard, che è uno dei motivi principali della sua popolarità nell'analisi forense.
Ciclo di vita del codice Python
All'inizio, quando esegui un codice Python, l'interprete controlla il codice per errori di sintassi. Se l'interprete rileva errori di sintassi, vengono visualizzati immediatamente come messaggi di errore.
Se non sono presenti errori di sintassi, il codice viene compilato per produrre un file bytecode e inviato a PVM (Python Virtual Machine).
Il PVM controlla il bytecode per eventuali errori di runtime o logici. Nel caso in cui PVM rilevi errori di runtime, vengono segnalati immediatamente come messaggi di errore.
Se il bytecode è privo di errori, il codice viene elaborato e si ottiene il suo output.
La seguente illustrazione mostra graficamente come il codice Python viene interpretato per la prima volta per produrre un bytecode e come il bytecode viene elaborato da PVM per produrre l'output.