Skip to content

Instantly share code, notes, and snippets.

@FelixWolf
Created March 13, 2025 14:29
Show Gist options
  • Save FelixWolf/db5b6b3b1993782d572202c26ab594d0 to your computer and use it in GitHub Desktop.
Save FelixWolf/db5b6b3b1993782d572202c26ab594d0 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
with open("comm.dat", "rb") as f:
d = f.read()
d = bytearray(d)
key = 0
for i in range(len(d)):
d[i] = d[i] ^ ((key * 43) % 256)
key += 1
parsed = []
stack = [parsed]
strbuf = ""
for c in d.decode():
if c in (" ", "\t", "{", "}"):
if strbuf != "":
stack[-1].append(strbuf)
strbuf = ""
if c == "{":
stack.append([])
elif c == "}":
tmp = stack.pop()
stack[-1].append(tmp)
elif not c in (" ", "\t"):
strbuf += c
high = 1
medium = 1
low = 1
with open("message_template.msg", "w") as f:
for iroot, kroot in enumerate(parsed):
if type(kroot) == str:
f.write(kroot)
if type(parsed[iroot + 1]) == str:
f.write(" ")
else:
f.write("\n")
else: # Will be type list
f.write("\n{\n")
f.write("\t")
for imessage, kmessage in enumerate(kroot):
if type(kmessage) == str:
f.write(kmessage)
if kmessage == "High":
f.write(" {}".format(high))
high += 1
elif kmessage == "Medium":
f.write(" {}".format(medium))
medium += 1
elif kmessage == "Low":
f.write(" {}".format(low))
low += 1
if len(kroot) > imessage + 1 and type(kroot[imessage + 1]) == str:
f.write(" ")
else:
f.write("\n")
else: # Will be type list
f.write("\t")
f.write("{\n")
f.write("\t\t")
for iblock, kblock in enumerate(kmessage):
if type(kblock) == str:
f.write(kblock)
if len(kmessage) > iblock + 1 and type(kmessage[iblock + 1]) == str:
f.write("\t")
else:
f.write("\n")
else: # Will be type list
f.write("\t\t{")
f.write("\t")
for ientry, kentry in enumerate(kblock):
if type(kentry) == str:
f.write(kentry)
f.write("\t")
f.write("}\n")
f.write("\t}\n")
f.write("}\n")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment