Python Forensics - Visão geral do Python

Os códigos escritos em Python são bastante semelhantes aos códigos escritos em outras linguagens de programação convencionais, como C ou Pascal. Também é dito que a sintaxe do Python é fortemente emprestada de C. Isso inclui muitas das palavras-chave do Python que são semelhantes à linguagem C.

Python inclui instruções condicionais e em loop, que podem ser usadas para extrair os dados com precisão para fins forenses. Para controle de fluxo, ele forneceif/else, while, e um alto nível for instrução que faz um loop sobre qualquer objeto "iterável".

if a < b: 
   max = b 
else: 
   max = a

A principal área em que o Python difere de outras linguagens de programação é no uso de dynamic typing. Ele usa nomes de variáveis ​​que se referem a objetos. Essas variáveis ​​não precisam ser declaradas.

Tipos de dados

Python inclui um conjunto de tipos de dados embutidos, como strings, booleano, números, etc. Existem também tipos imutáveis, o que significa que os valores não podem ser alterados durante a execução.

Python também possui tipos de dados integrados que incluem tuples que são matrizes imutáveis, lists, e dictionariesque são tabelas hash. Todos eles são usados ​​em análise forense digital para armazenar valores durante a coleta de evidências.

Módulos e pacotes de terceiros

Python suporta grupos de módulos e / ou pacotes que também são chamados third-party modules (código relacionado agrupado em um único arquivo de origem) usado para organizar programas.

Python inclui uma extensa biblioteca padrão, que é um dos principais motivos de sua popularidade na ciência forense computacional.

Ciclo de vida do código Python

  • A princípio, quando você executa um código Python, o interpretador verifica se há erros de sintaxe no código. Se o interpretador descobrir algum erro de sintaxe, eles serão exibidos imediatamente como mensagens de erro.

  • Se não houver erros de sintaxe, o código é compilado para produzir um bytecode e enviado para PVM (Python Virtual Machine).

  • O PVM verifica o bytecode para qualquer tempo de execução ou erros lógicos. No caso de o PVM encontrar quaisquer erros de tempo de execução, eles são relatados imediatamente como mensagens de erro.

  • Se o bytecode estiver livre de erros, o código será processado e você obterá sua saída.

A ilustração a seguir mostra de maneira gráfica como o código Python é interpretado primeiro para produzir um bytecode e como o bytecode é processado pelo PVM para produzir a saída.