Python取证-Python的概述
用Python编写的代码看起来与其他传统编程语言如C或Pascal编写的代码非常相似。据说Python的语法在很大程度上借用了C语言,这包括许多与C语言相似的Python关键字。
Python包括条件语句和循环语句,这些语句可以用来准确地提取数据进行取证。对于流程控制,它提供了 if/else 、 while 和一个高级 for 语句,可以在任何 “可迭代 “对象上循环。
Python与其它编程语言不同的主要方面是它对 动态类型 的使用 。 它使用指代对象的变量名。这些变量不需要被声明。
数据类型
Python 包括一组内置的数据类型,如字符串、布尔值、数字等。还有一些不可变的类型,这意味着在执行过程中不能改变的值。
Python也有复合的内置数据类型,包括 图元 ,它是不可变的数组, 列表 ,和 字典 ,它是哈希表。所有这些都被用于数字取证中,在收集证据时存储数值。
第三方模块和软件包
Python 支持模块和/或包的分组,这些模块和/或包也被称为 第三方模块 (相关代码被分组在一个源文件中),用于组织程序。
Python包括一个广泛的标准库,这是它在计算法医学中受欢迎的主要原因之一。
Python代码的生命周期
- 起初,当你执行Python代码时,解释器会检查代码是否有语法错误。如果解释器发现了任何语法错误,那么它们会立即显示为错误信息。
-
如果没有语法错误,那么代码会被编译成 字节码 ,并被发送到PVM (Python虚拟机)。
-
PVM检查字节码是否有任何运行时或逻辑错误。如果PVM发现任何运行时错误,那么它们会立即以错误信息的形式报告。
-
如果字节码没有错误,那么代码就会被处理,你会得到它的输出。
下面的插图以图形的方式显示了Python代码是如何首先被解释以产生字节码的,以及字节码是如何被PVM处理以产生输出的。