From aa99a4932dd80188682e7213c368bd400b02b41a Mon Sep 17 00:00:00 2001 From: Ebrix <8287617+Ebrix@users.noreply.github.com> Date: Thu, 5 Mar 2026 04:47:31 +0100 Subject: [PATCH] Fix bugs: reg_value to reg_name, multi_sz decoding --- scapy/layers/windows/registry.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scapy/layers/windows/registry.py b/scapy/layers/windows/registry.py index edf26b11ec0..640f09829cd 100644 --- a/scapy/layers/windows/registry.py +++ b/scapy/layers/windows/registry.py @@ -250,7 +250,7 @@ def frombytes(reg_name: str, reg_type: RegType, data: bytes): """ if reg_type == RegType.REG_MULTI_SZ: # encode to multiple null terminated strings - reg_data = [x.decode("utf-16le") for x in data.split(b"\x00\x00")[:-1]] + reg_data = data.decode("utf-16le")[:-2].split("\x00") elif reg_type in [ RegType.REG_SZ, RegType.REG_EXPAND_SZ, @@ -311,13 +311,13 @@ def fromstr(reg_name: str, reg_type: RegType, data: str): def __str__(self) -> str: return ( - f"{self.reg_value} ({self.reg_type.name}: " + f"{self.reg_name} ({self.reg_type.name}: " + f"{self.reg_type.real_value if self.reg_type == RegType.UNK else self.reg_type.value}" # noqa E501 + f") {self.reg_data}" ) def __repr__(self) -> str: - return f"RegEntry({self.reg_value}, {self.reg_type}, {self.reg_data})" + return f"RegEntry({self.reg_name}, {self.reg_type}, {self.reg_data})" def __eq__(self, value): return isinstance(value, RegEntry) and all(