Got rid of biplist, using standard plistlib

This commit is contained in:
Nex
2021-08-14 18:50:11 +02:00
parent 30e00e0707
commit 8260bda308
6 changed files with 15 additions and 16 deletions

View File

@@ -6,8 +6,7 @@
import collections
import glob
import os
import biplist
import plistlib
from mvt.common.utils import convert_mactime_to_unix, convert_timestamp_to_iso
@@ -57,7 +56,8 @@ class IDStatusCache(IOSExtraction):
self._find_ios_database(backup_ids=IDSTATUSCACHE_BACKUP_IDS, root_paths=IDSTATUSCACHE_ROOT_PATHS)
self.log.info("Found IDStatusCache plist at path: %s", self.file_path)
file_plist = biplist.readPlist(self.file_path)
with open(self.file_path, "rb") as handle:
file_plist = plistlib.load(handle)
id_status_cache_entries = []
for app in file_plist:

View File

@@ -5,8 +5,7 @@
import glob
import os
import biplist
import plistlib
from mvt.common.utils import convert_mactime_to_unix, convert_timestamp_to_iso
@@ -55,7 +54,9 @@ class LocationdClients(IOSExtraction):
def run(self):
self._find_ios_database(backup_ids=LOCATIOND_BACKUP_IDS, root_paths=LOCATIOND_ROOT_PATHS)
self.log.info("Found Locationd Clients plist at path: %s", self.file_path)
file_plist = biplist.readPlist(self.file_path)
with open(self.file_path, "rb") as handle:
file_plist = plistlib.load(handle)
for app in file_plist:
if file_plist[app] is dict:

View File

@@ -6,10 +6,9 @@
import datetime
import io
import os
import plistlib
import sqlite3
import biplist
from mvt.common.module import DatabaseNotFoundError
from mvt.common.utils import convert_timestamp_to_iso
@@ -117,7 +116,7 @@ class Manifest(IOSExtraction):
if file_data["file"]:
try:
file_plist = biplist.readPlist(io.BytesIO(file_data["file"]))
file_plist = plistlib.load(io.BytesIO(file_data["file"]))
file_metadata = self._get_key(file_plist, "$objects")[1]
cleaned_metadata.update({
"created": self._convert_timestamp(self._get_key(file_metadata, "Birth")),

View File

@@ -4,10 +4,9 @@
# https://license.mvt.re/1.1/
import io
import plistlib
import sqlite3
import biplist
from mvt.common.utils import (convert_mactime_to_unix,
convert_timestamp_to_iso, keys_bytes_to_string)
@@ -80,7 +79,7 @@ class SafariBrowserState(IOSExtraction):
if item[4]:
# Skip a 4 byte header before the plist content.
session_plist = item[4][4:]
session_data = biplist.readPlist(io.BytesIO(session_plist))
session_data = plistlib.load(io.BytesIO(session_plist))
session_data = keys_bytes_to_string(session_data)
if "SessionHistoryEntries" in session_data["SessionHistory"]:

View File

@@ -5,8 +5,7 @@
import glob
import os
import biplist
import plistlib
from mvt.common.utils import convert_timestamp_to_iso
@@ -36,7 +35,9 @@ class WebkitSessionResourceLog(IOSExtraction):
def _extract_browsing_stats(self, file_path):
items = []
file_plist = biplist.readPlist(file_path)
with open(file_path, "rb") as handle:
file_list = plistlib.read(handle)
if "browsingStatistics" not in file_plist:
return items

View File

@@ -25,7 +25,6 @@ requires = (
"requests>=2.26.0",
"simplejson>=3.17.3",
# iOS dependencies:
"biplist>=1.0.3",
"iOSbackup>=0.9.912",
# Android dependencies:
"adb-shell>=0.4.0",