Book Image

Learning Python for Forensics

By : Chapin Bryce
Book Image

Learning Python for Forensics

By: Chapin Bryce

Overview of this book

This book will illustrate how and why you should learn Python to strengthen your analysis skills and efficiency as you creatively solve real-world problems through instruction-based tutorials. The tutorials use an interactive design, giving you experience of the development process so you gain a better understanding of what it means to be a forensic developer. Each chapter walks you through a forensic artifact and one or more methods to analyze the evidence. It also provides reasons why one method may be advantageous over another. We cover common digital forensics and incident response scenarios, with scripts that can be used to tackle case work in the field. Using built-in and community-sourced libraries, you will improve your problem solving skills with the addition of the Python scripting language. In addition, we provide resources for further exploration of each script so you can understand what further purposes Python can serve. With this knowledge, you can rapidly develop and deploy solutions to identify critical information and fine-tune your skill set as an examiner.
Table of Contents (24 chapters)
Learning Python for Forensics
Credits
About the Authors
Acknowledgments
About the Reviewer
www.PacktPub.com
Preface
Index

Parsing EXIF metadata – exif_parser.py


The exif_parser plugin is the first we will develop and is relatively simple due to our reliance on the PIL module. There are three functions within this script: exifParser(), getTags(), and dmsToDecimal(). The exifParser() function, on line 14, is the entry point into this plugin and takes a string representing a filename as its only input. This function primarily serves as coordinating logic for the plugin.

The getTags() function on line 30 is responsible for parsing the EXIF tags from our input file. Finally, the dmsToDecimal() function on line 117 is a small helper function responsible for converting GPS coordinates into decimal format. Take a look at the following code:

001 from datetime import datetime
002 import os
003 from time import gmtime, strftime
004  
005 from PIL import Image
006  
007 import processors
008  
009 __author__ = 'Preston Miller & Chapin Bryce'
010 __date__ = '20160401'
011 __version__ = 0.01
012 __description__ = 'This...