Python-forensics-forensics-python-overview
Pythonフォレンジック-Pythonの概要
Pythonで記述されたコードは、CやPascalなどの他の従来のプログラミング言語で記述されたコードと非常によく似ています。 また、Pythonの構文はCから大きく借用されているとも言われています。 これには、C言語に似た多くのPythonキーワードが含まれます。
Pythonには、フォレンジックのためにデータを正確に抽出するために使用できる条件ステートメントとループステートメントが含まれています。 フロー制御の場合、 if/else 、 while 、および「反復可能な」オブジェクトをループする高レベルの for ステートメントを提供します。
if a < b:
max = b
else:
max = a
Pythonが他のプログラミング言語と異なる主な領域は、*動的タイピング*の使用です。 オブジェクトを参照する変数名を使用します。 これらの変数を宣言する必要はありません。
データ型
Pythonには、文字列、ブール値、数値などの一連の組み込みデータ型が含まれています。 不変タイプもあります。これは、実行中に変更できない値を意味します。
Pythonには、不変配列である tuples 、 lists 、およびハッシュテーブルである dictionaries を含む複合組み込みデータ型もあります。 それらはすべて、証拠を収集しながら値を格納するためにデジタルフォレンジックで使用されます。
サードパーティのモジュールとパッケージ
Pythonは、プログラムの編成に使用される*サードパーティモジュール*(単一のソースファイルにグループ化された関連コード)とも呼ばれるモジュールやパッケージのグループをサポートします。
Pythonには、広範な標準ライブラリが含まれています。これは、計算科学捜査で人気がある主な理由の1つです。
Pythonコードのライフサイクル
- 最初に、Pythonコードを実行すると、インタープリターは構文エラーのコードをチェックします。 インタプリタが構文エラーを発見した場合、エラーメッセージとしてすぐに表示されます。
- 構文エラーがない場合、コードはコンパイルされて bytecode が生成され、PVM(Python Virtual Machine)に送信されます。
- PVMは、ランタイムエラーまたは論理エラーがないかバイトコードをチェックします。 PVMがランタイムエラーを検出した場合、エラーメッセージとして直ちに報告されます。
- バイトコードにエラーがない場合、コードが処理され、出力が得られます。
次の図は、Pythonコードが最初に解釈されてバイトコードが生成される方法と、バイトコードがPVMによって処理されて出力が生成される方法をグラフィカルに示しています。