refactor: better key handling yet again

This commit is contained in:
Dobin
2024-06-02 11:14:50 +01:00
parent c11bd73534
commit 0ff76d87c7
3 changed files with 29 additions and 14 deletions
+19 -13
View File
@@ -14,19 +14,13 @@ class Config(object):
self.ShowCommandOutput: bool = False
self.debug: bool = False
self.data_fixups = None
self.data_fixup_entries = None
# Default keys
self.xor_key: int = 0x42
self.xor_key2: bytes = b"\x13\x37"
self.data_fixups = None
self.data_fixup_entries = None
def getConfigPath(self):
return CONFIG_FILE
def getConfig(self):
return self.data
def load(self):
with open(CONFIG_FILE) as jsonfile:
@@ -41,20 +35,32 @@ class Config(object):
self.data["server"] = { "server": server }
print("Using ENV: server={}, overwriting all others from config.yaml".format(
server))
def make_encryption_keys(self):
# 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)
self.xor_key2 = os.urandom(2)
else:
self.xor_key = self.data["xor_key2"]
logger.info("XOR Key: {} XOR2 Key: {}".format(
self.xor_key2 = self.data["xor_key2"]
logger.info("-( Payload encryption keys: XOR: {} XOR2: {}".format(
self.xor_key, self.xor_key2
))
def getConfigPath(self):
return CONFIG_FILE
def getConfig(self):
return self.data
def get(self, value):
return self.data.get(value, "")
+7 -1
View File
@@ -8,4 +8,10 @@ path_runshc: 'C:\Users\hacker\Source\Repos\masm_shc\out\build\x64-Debug\runshc\r
path_sgn: 'C:\tools\sgn2.1\sgn.exe'
#avred_server: "http://192.168.88.65:8001"
avred_server: ""
avred_server: ""
# leave empty for random on each build
xor_key: ""
xor_key2: ""
#xor_key: "\x42"
#xor_key2: "\x13\x37"
+3
View File
@@ -105,6 +105,9 @@ def start(settings: Settings) -> int:
# And logs
observer.reset()
# Set new keys
config.make_encryption_keys()
# Prepare the project: copy all files to projects/<project_name>/
prepare_project(settings.project_name, settings)