Python Forensics: descripción general de Python
Los códigos escritos en Python se parecen bastante a los códigos escritos en otros lenguajes de programación convencionales como C o Pascal. También se dice que la sintaxis de Python está fuertemente tomada de C. Esto incluye muchas de las palabras clave de Python que son similares al lenguaje C.
Python incluye declaraciones condicionales y en bucle, que se pueden usar para extraer los datos con precisión para fines forenses. Para el control de flujo, proporcionaif/else, whiley un alto nivel for declaración que recorre cualquier objeto "iterable".
if a < b:
max = b
else:
max = a
El área principal en la que Python se diferencia de otros lenguajes de programación es en el uso de dynamic typing. Utiliza nombres de variables que se refieren a objetos. No es necesario declarar estas variables.
Tipos de datos
Python incluye un conjunto de tipos de datos integrados, como cadenas, booleanos, números, etc. También hay tipos inmutables, lo que significa los valores que no se pueden cambiar durante la ejecución.
Python también tiene tipos de datos integrados compuestos que incluyen tuples que son matrices inmutables, listsy dictionariesque son tablas hash. Todos ellos se utilizan en análisis forense digital para almacenar valores mientras se recopilan pruebas.
Módulos y paquetes de terceros
Python admite grupos de módulos y / o paquetes que también se denominan third-party modules (código relacionado agrupado en un solo archivo fuente) utilizado para organizar programas.
Python incluye una extensa biblioteca estándar, que es una de las principales razones de su popularidad en la ciencia forense computacional.
Ciclo de vida del código Python
Al principio, cuando ejecuta un código Python, el intérprete verifica el código en busca de errores de sintaxis. Si el intérprete descubre errores de sintaxis, se muestran inmediatamente como mensajes de error.
Si no hay errores de sintaxis, entonces el código se compila para producir un bytecode y enviado a PVM (máquina virtual de Python).
El PVM comprueba el código de bytes en busca de errores de ejecución o lógicos. En caso de que PVM encuentre algún error en tiempo de ejecución, se informa inmediatamente como mensaje de error.
Si el código de bytes está libre de errores, entonces el código se procesa y obtiene su salida.
La siguiente ilustración muestra de forma gráfica cómo se interpreta primero el código Python para producir un código de bytes y cómo el código de bytes es procesado por el PVM para producir la salida.