diff --git a/app/views.py b/app/views.py index b1281df..5d9536d 100644 --- a/app/views.py +++ b/app/views.py @@ -90,12 +90,12 @@ def project(): id = 0 asm_a = "" # for diff asm_b = "" - for file in os.listdir("logs"): + for file in os.listdir(f"{logs_dir}/"): if file.startswith("."): continue print("Handle: ", file) - with open(os.path.join("logs", file), "r") as f: + with open(os.path.join(f"{logs_dir}/", file), "r") as f: if file.endswith(".bin"): continue data = f.read() diff --git a/build/.gitkeep b/build/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/helper.py b/helper.py index 2f88462..470370a 100644 --- a/helper.py +++ b/helper.py @@ -49,7 +49,7 @@ def run_process_checkret(args, check=True): logger.warn(f"An error occurred: {e}") # Handle other exceptions - with open("logs/cmdoutput.log", "ab") as f: + with open(f"{logs_dir}/cmdoutput.log", "ab") as f: cmd = "------------------------------------\n" cmd += "--- " + " ".join(args) + "\n" f.write(cmd.encode('utf-8')) diff --git a/log.py b/log.py index e296332..3953923 100644 --- a/log.py +++ b/log.py @@ -1,5 +1,7 @@ import logging +from model.defs import * + log_messages = [] @@ -46,7 +48,7 @@ class ListHandler(logging.Handler): def writelog(): # write log to file - with open("logs/supermega.log", "w") as f: + with open(f"{logs_dir}/supermega.log", "w") as f: for line in log_messages: f.write(line + "\n") diff --git a/logs/.gitkeep b/logs/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/model/defs.py b/model/defs.py index 34b573e..fc619fe 100644 --- a/model/defs.py +++ b/model/defs.py @@ -37,7 +37,9 @@ class SourceStyle(Enum): iat_reuse = "iat_reuse" -build_dir = "build" +# no slash at end +build_dir = "working/build" +logs_dir = "working/logs" main_c_file = os.path.join(build_dir, "main.c") main_asm_file = os.path.join(build_dir, "main.asm") diff --git a/observer.py b/observer.py index 22ea8f5..69c0f16 100644 --- a/observer.py +++ b/observer.py @@ -5,6 +5,7 @@ from capstone import Cs, CS_ARCH_X86, CS_MODE_64 from model import * from peparser.r2helper import r2_disas from helper import delete_all_files_in_directory +from model.defs import * class Observer(): @@ -32,16 +33,16 @@ class Observer(): def write_to_file(self, filename, data): if not self.active: return - with open("logs/{}-{}".format(self.idx, filename), "w") as f: + with open("{}/{}-{}".format(logs_dir, self.idx, filename), "w") as f: f.write(data) def write_to_file_bin(self, filename, data): if not self.active: return - with open("logs/{}-{}".format(self.idx, filename), "wb") as f: + with open("{}/{}-{}".format(logs_dir, self.idx, filename), "wb") as f: f.write(data) def clean_files(self): - delete_all_files_in_directory("logs/") + delete_all_files_in_directory(f"{logs_dir}/") self.idx = 0 self.logs = [] diff --git a/out/.gitkeep b/out/.gitkeep deleted file mode 100644 index 49cc8ef..0000000 Binary files a/out/.gitkeep and /dev/null differ diff --git a/phases/templater.py b/phases/templater.py index dc8a209..91b5e55 100644 --- a/phases/templater.py +++ b/phases/templater.py @@ -74,12 +74,12 @@ def create_c_from_template( observer.add_text("main_c_rendered", rendered_template) # TODO PEB - shutil.copy("data/source/peb_walk/peb_lookup.h", "build/peb_lookup.h") + shutil.copy("data/source/peb_walk/peb_lookup.h", f"{build_dir}/peb_lookup.h") else: observer.add_text("main_c", file_readall_text("data/source/peb_walk/main.c")) shutil.copy("data/source/peb_walk/main.c", main_c_file) # TODO PEB - shutil.copy("data/source/peb_walk/peb_lookup.h", "build/peb_lookup.h") + shutil.copy("data/source/peb_walk/peb_lookup.h", f"{build_dir}/peb_lookup.h") elif source_style == SourceStyle.iat_reuse: if use_templates: diff --git a/supermega.py b/supermega.py index c860883..c1020c2 100644 --- a/supermega.py +++ b/supermega.py @@ -137,7 +137,7 @@ def start(settings: Settings): # Delete: all old files if settings.cleanup_files_on_start: clean_files() - delete_all_files_in_directory("logs/") + delete_all_files_in_directory(f"{logs_dir}/") exit_code = 0 # 0 = success # Load our input