From f15358bcd48bffcc18c1760bc298afbdef7a59f6 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 6 Jan 2018 00:40:56 +0200 Subject: [PATCH] obfuscate_pseudoc: A simple tool to somewhat obfuscate PseudoC. Purpose: convert real-world subjects into abstract testcases. --- obfuscate_pseudoc.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 obfuscate_pseudoc.py diff --git a/obfuscate_pseudoc.py b/obfuscate_pseudoc.py new file mode 100755 index 00000000..ea978d23 --- /dev/null +++ b/obfuscate_pseudoc.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +import sys +import re + + +start_addr = None +out_f = None + + +with open(sys.argv[1]) as f: + for l in f: + addr = int(l[:8], 16) + l = l[8:] + + if start_addr is None: + start_addr = addr + out_f = open("fun_%08x.lst" % (~start_addr & 0xffffffff), "w") + + def repl(m): + return m.group(1) + "%08x" % (int(m.group(2), 16) - start_addr) + + l = re.sub(r"(loc_)([0-9A-Fa-f]{8})", repl, l) + + addr -= start_addr + out_f.write("%08x%s" % (addr, l))