From 856a6fb89543a3025b06d34ae8417681b7d856f5 Mon Sep 17 00:00:00 2001 From: Nex Date: Sat, 28 Aug 2021 12:33:27 +0200 Subject: [PATCH] Cleaning up some classes --- mvt/common/module.py | 19 ++++++++++--------- mvt/ios/decrypt.py | 3 ++- mvt/ios/modules/backup/manifest.py | 3 ++- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/mvt/common/module.py b/mvt/common/module.py index e02c270..8424082 100644 --- a/mvt/common/module.py +++ b/mvt/common/module.py @@ -100,6 +100,14 @@ class MVTModule(object): def serialize(self, record): raise NotImplementedError + @staticmethod + def _deduplicate_timeline(timeline): + """Serialize entry as JSON to deduplicate repeated entries""" + timeline_set = set() + for record in timeline: + timeline_set.add(json.dumps(record, sort_keys=True)) + return [json.loads(record) for record in timeline_set] + def to_timeline(self): """Convert results into a timeline. """ @@ -120,15 +128,8 @@ class MVTModule(object): self.timeline_detected.append(record) # De-duplicate timeline entries. - self.timeline = self.timeline_deduplicate(self.timeline) - self.timeline_detected = self.timeline_deduplicate(self.timeline_detected) - - def timeline_deduplicate(self, timeline): - """Serialize entry as JSON to deduplicate repeated entries""" - timeline_set = set() - for record in timeline: - timeline_set.add(json.dumps(record, sort_keys=True)) - return [json.loads(record) for record in timeline_set] + self.timeline = self._deduplicate_timeline(self.timeline) + self.timeline_detected = self._deduplicate_timeline(self.timeline_detected) def run(self): """Run the main module procedure. diff --git a/mvt/ios/decrypt.py b/mvt/ios/decrypt.py index 4ebccf9..ed7e41a 100644 --- a/mvt/ios/decrypt.py +++ b/mvt/ios/decrypt.py @@ -32,7 +32,8 @@ class DecryptBackup: def can_process(self) -> bool: return self._backup is not None - def is_encrypted(self, backup_path) -> bool: + @staticmethod + def is_encrypted(backup_path) -> bool: """Query Manifest.db file to see if it's encrypted or not. :param backup_path: Path to the backup to decrypt """ diff --git a/mvt/ios/modules/backup/manifest.py b/mvt/ios/modules/backup/manifest.py index c6c12cf..1c257fa 100644 --- a/mvt/ios/modules/backup/manifest.py +++ b/mvt/ios/modules/backup/manifest.py @@ -30,7 +30,8 @@ class Manifest(IOSExtraction): """ return dictionary.get(key.encode("utf-8"), None) or dictionary.get(key, None) - def _convert_timestamp(self, timestamp_or_unix_time_int): + @staticmethod + def _convert_timestamp(timestamp_or_unix_time_int): """Older iOS versions stored the manifest times as unix timestamps. """ if isinstance(timestamp_or_unix_time_int, datetime.datetime):