Python är ett favoritprogrammeringsspråk bland poliser, it-forensiker och säkerhetsspecialister. Det är kraftfullt, lätt att lära sig med sin enkla syntax, och enkelt att installera.

Python finns tillgängligt för flera olika operativsystem, bland annat Windows, Linux och Mac OS X.

1. Vi skriver ett forensiskt verktyg med Python för att automatisera den här uppgiften. I Pythonkoden använder vi tekniken med filhuvud (FFD8FF) och fot (FFD9) för att återställa raderade bilder från det formaterade usb-minnet.

#!/usr/bin/python
# coding=utf-8
import os
import sys
#skapa en mapp med namnet "image"
dir="./image"
if not os.path.exists(dir):
os.makedirs(dir)
#argv1: namn på binärfil
#argv2: namn på bilder, pic1, pic2 osv
try:
argv1, argv2 = sys.argv
except:
argv1, argv2 = "Formaterat_USB.001 pic".split()
# bilderna sparas i dir-mappen
argv2=dir+"/"+argv2
print(argv1)
#Öppna image-filen i binärt läsläge
f1 = open(argv1, mode='rb')
print(f1)
#filhuvud (Headers) för jpeg carving
jpgHeader = b'\xFF\xD8\xFF'
jpgFooter = b'\xFF\xD9'
#Läsa buffert från filen
buff = ""
#Antal filer och offset är lika med noll
picIndex = 0
offset = 0
try:
while True:
#Header för jpeg-carving
if buff.endswith(jpgHeader):
# jpgHeader tilldelas
buff = jpgHeader
if buff.endswith(jpgFooter) and buff.startswith(jpgHeader):
#Om det finns data mellan header och footer
if len(buff)>5:
#utöka picIndex med 1
picIndex = picIndex + 1
#result av jpg-sökväg
with open(argv2 + str(picIndex) + ".jpg", mode='wb') as f2:
f2.write(buff)
#visa jpeg namn
print("pic"+str(picIndex))
#initiera bufferten
buff = ""
# Läs nästa byte och redo för inre while
b = f1.read(1)
if b:
# Om vi har lyckats, öka bufferten med en byte
buff = buff+b
offset +=1
else:
#raise exception
raise EOFError('End of file reached')
except Exception as e:
print e
#visa totalt antal bilder
print("exit, wrote " + str(picIndex) + " files")

2. Nu kan vi exekvera Pythonscriptet, döpt till pic_carveV1, mot det formaterade usb-minnet.

skärmbild

3. Vi lyckades återskapa de raderade bilderna från det formaterade usb-minnet på mindre än tio sekunder.

skärmbild