From cf14ec9b9ad6ba5f8454359d029bf1381308125b Mon Sep 17 00:00:00 2001 From: Manabu Niseki Date: Tue, 30 Jun 2020 17:42:28 +0900 Subject: [PATCH] refactor: enforce "is None" checking Enforce "is None" checking in methods --- app/services/oleid.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/services/oleid.py b/app/services/oleid.py index 43fd58d..13f40f7 100644 --- a/app/services/oleid.py +++ b/app/services/oleid.py @@ -1,22 +1,35 @@ +from typing import Optional + import oletools.oleid from olefile import OleFileIO, isOleFile class OleID: def __init__(self, data: bytes): + self.oid: Optional[oletools.oleid.OleID] = None + if isOleFile(data): ole_file = OleFileIO(data) self.oid = oletools.oleid.OleID(ole_file) self.oid.check() def is_encrypted(self) -> bool: + if self.oid is None: + return False + encrypted = self.oid.get_indicator("encrypted") return encrypted is not None and encrypted.value is True def has_vba_macros(self) -> bool: + if self.oid is None: + return False + macros = self.oid.get_indicator("vba_macros") return macros is not None and macros.value is True def has_flash_objects(self) -> bool: + if self.oid is None: + return False + flash = self.oid.get_indicator("flash") return flash is not None and flash.value > 0