Python Forensics 简明教程

Python Forensics - Overview of Python

Python 编写的代码看起来与 C 或 Pascal 等其它传统编程语言编写的代码非常相似。也有人说 Python 的语法借鉴了 C。这包括许多与 C 语言相似的 Python 关键字。

Python 包含条件和循环语句,可用于准确提取数据以进行取证。对于流程控制,它提供了 if/elsewhile 和一个高级 for 语句,该语句循环访问任何“可迭代”对象。

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

Python 与其他编程语言不同之处在于它使用 dynamic typing 。它使用引用对象的变量名。无需声明这些变量。

Data Types

Python 包含一组内置数据类型,如字符串、布尔值、数字等。还有一些不可变的类型,这意味着在执行过程中不能更改这些值。

Python 还具有复合内置数据类型,包括 tuples ,它们是不可变数组, listsdictionaries ,它们是哈希表。它们全部用于数字取证,以便在收集证据时存储值。

Third-party Modules and Packages

Python 支持模块和/或包的组,它们也称为 third-party modules (在单个源文件中分组合并的相关代码),用于组织程序。

Python 包含一个扩展标准库,这是它在计算取证中受欢迎的主要原因之一。

Life Cycle of Python Code

  1. 最初,当你执行 Python 代码时,解释器会检查代码是否存在语法错误。如果解释器发现任何语法错误,它们将立即显示为错误消息。

  2. 如果没有语法错误,则会编译代码以生成 bytecode 并将其发送到 PVM(Python 虚拟机)。

  3. PVM 检查字节码是否存在任何运行时或逻辑错误。如果 PVM 发现任何运行时错误,它们将立即报告为错误消息。

  4. 如果字节码没有错误,则会处理代码,你将获得其输出。

下图以图形方式显示了 Python 代码如何首先被解释为字节码,以及字节码如何被 PVM 处理以产生输出。

python code life cycle