Python Forensics - ภาพรวมของ Python

รหัสที่เขียนด้วย Python มีลักษณะค่อนข้างคล้ายกับรหัสที่เขียนในภาษาโปรแกรมทั่วไปอื่น ๆ เช่น C หรือ Pascal ว่ากันว่าไวยากรณ์ของ Python ถูกยืมมาจาก C ซึ่งรวมถึงคำหลัก Python หลายคำที่คล้ายกับภาษา C

Python มีคำสั่งเงื่อนไขและการวนซ้ำซึ่งสามารถใช้เพื่อดึงข้อมูลอย่างถูกต้องสำหรับนิติเวช สำหรับการควบคุมการไหลจะมีให้if/else, whileและระดับสูง for คำสั่งที่วนซ้ำอยู่เหนือวัตถุใด ๆ ที่ "ทำซ้ำได้"

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

พื้นที่หลักที่ Python แตกต่างจากภาษาโปรแกรมอื่น ๆ คือการใช้งาน dynamic typing. ใช้ชื่อตัวแปรที่อ้างถึงวัตถุ ไม่จำเป็นต้องประกาศตัวแปรเหล่านี้

ประเภทข้อมูล

Python มีชุดประเภทข้อมูลในตัวเช่นสตริงบูลีนตัวเลข ฯลฯ นอกจากนี้ยังมีประเภทที่ไม่เปลี่ยนรูปซึ่งหมายถึงค่าที่ไม่สามารถเปลี่ยนแปลงได้ในระหว่างการดำเนินการ

Python ยังมีชนิดข้อมูลในตัวแบบผสมซึ่งรวมถึง tuples ซึ่งเป็นอาร์เรย์ที่ไม่เปลี่ยนรูป listsและ dictionariesซึ่งเป็นตารางแฮช ทั้งหมดนี้ใช้ในนิติดิจิทัลเพื่อเก็บค่าในขณะรวบรวมหลักฐาน

โมดูลและแพ็คเกจของบุคคลที่สาม

Python รองรับกลุ่มของโมดูลและ / หรือแพ็คเกจที่เรียกอีกอย่างว่า third-party modules (รหัสที่เกี่ยวข้องจัดกลุ่มเข้าด้วยกันในซอร์สไฟล์เดียว) ใช้สำหรับจัดระเบียบโปรแกรม

Python มีไลบรารีมาตรฐานที่กว้างขวางซึ่งเป็นหนึ่งในเหตุผลหลักที่ทำให้มันได้รับความนิยมในการคำนวณทางนิติวิทยาศาสตร์

วงจรชีวิตของรหัส Python

  • ในตอนแรกเมื่อคุณรันโค้ด Python ล่ามจะตรวจสอบโค้ดเพื่อหาข้อผิดพลาดทางไวยากรณ์ หากล่ามพบข้อผิดพลาดทางไวยากรณ์ก็จะแสดงเป็นข้อความแสดงข้อผิดพลาดทันที

  • หากไม่มีข้อผิดพลาดทางไวยากรณ์รหัสจะถูกคอมไพล์เพื่อสร้างไฟล์ bytecode และส่งไปยัง PVM (Python Virtual Machine)

  • PVM ตรวจสอบ bytecode เพื่อหาข้อผิดพลาดของรันไทม์หรือตรรกะ ในกรณีที่ PVM พบข้อผิดพลาดรันไทม์จะรายงานทันทีเป็นข้อความแสดงข้อผิดพลาด

  • หาก bytecode ไม่มีข้อผิดพลาดโค้ดจะถูกประมวลผลและคุณจะได้ผลลัพธ์

ภาพประกอบต่อไปนี้แสดงในลักษณะกราฟิกว่าโค้ด Python ถูกตีความครั้งแรกเพื่อสร้าง bytecode อย่างไรและวิธีการประมวลผล bytecode โดย PVM เพื่อสร้างเอาต์พุต