From 93b9ea88053284dbb985e17a25dc41409069ec2a Mon Sep 17 00:00:00 2001 From: Dobin Date: Wed, 29 May 2024 08:35:37 +0100 Subject: [PATCH] feature: random keys upon build --- config.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/config.py b/config.py index 589553b..5de37ac 100644 --- a/config.py +++ b/config.py @@ -1,6 +1,10 @@ import yaml import os import logging +import random + +logger = logging.getLogger("Config") + CONFIG_FILE = os.path.join(os.path.dirname(__file__), "config.yaml") @@ -10,8 +14,10 @@ class Config(object): self.ShowCommandOutput: bool = False self.debug: bool = False - self.xor_key: int = 0x31 - self.xor_key2: bytes = b"\x31\x32" + # Default keys + self.xor_key: int = 0x42 + self.xor_key2: bytes = b"\x13\x37" + self.data_fixups = None self.data_fixup_entries = None @@ -35,6 +41,19 @@ class Config(object): self.data["server"] = { "server": server } print("Using ENV: server={}, overwriting all others from config.yaml".format( server)) + + # keys + if self.data["xor_key"] == "": + self.xor_key = random.randint(0, 255) + else: + self.xor_key = self.data["xor_key"] + if self.data["xor_key2"] == "": + self.xor_key = os.urandom(2) + else: + self.xor_key = self.data["xor_key2"] + logger.info("XOR Key: {} XOR2 Key: {}".format( + self.xor_key, self.xor_key2 + )) def get(self, value): return self.data.get(value, "")