From 2dc168628936ffcc334c1de37c024dc3d0fd7ff6 Mon Sep 17 00:00:00 2001 From: Mike Auty Date: Sat, 30 Nov 2024 13:36:14 +0000 Subject: [PATCH] Windows: Protect the SERICE_RECORD is_valid function a little more The request to .Order could fail depending on where the structure lies in memory. --- .../symbols/windows/extensions/services.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/volatility3/framework/symbols/windows/extensions/services.py b/volatility3/framework/symbols/windows/extensions/services.py index e14de761d..0a2194e07 100644 --- a/volatility3/framework/symbols/windows/extensions/services.py +++ b/volatility3/framework/symbols/windows/extensions/services.py @@ -14,13 +14,16 @@ class SERVICE_RECORD(objects.StructType): def is_valid(self) -> bool: """Determine if the structure is valid.""" - if self.Order < 0 or self.Order > 0xFFFF: - return False - try: - _ = self.State.description - _ = self.Start.description - except ValueError: + if self.Order < 0 or self.Order > 0xFFFF: + return False + + try: + _ = self.State.description + _ = self.Start.description + except ValueError: + return False + except exceptions.InvalidAddressException: return False return True