diff --git a/app/templates/index.html b/app/templates/index.html
index 8001dbb..3c4e815 100644
--- a/app/templates/index.html
+++ b/app/templates/index.html
@@ -10,6 +10,8 @@
SuperMega
+ Description of funtionality and settings.
+
Shellcode
--shellcode <filename.exe>
diff --git a/app/views_project.py b/app/views_project.py
index f8701ae..4c286d3 100644
--- a/app/views_project.py
+++ b/app/views_project.py
@@ -263,6 +263,8 @@ def build_project(project_name):
# return redirect("/project/{}".format(project_name), code=302)
project_settings.try_start_final_infected_exe = False
+ project_settings.cleanup_files_on_start = True # cleanup, or it will be confusing if failed
+
project = Project(project_settings)
prepare_project(project_name)
thread = Thread(target=supermega_thread, args=(project.settings, ))
diff --git a/helper.py b/helper.py
index 8a996a8..7506876 100644
--- a/helper.py
+++ b/helper.py
@@ -34,6 +34,7 @@ def clean_files(settings):
settings.project_asm_path,
settings.project_shc_path,
settings.project_exe_path,
+ settings.get_inject_exe_out(),
]
for file in files_to_clean:
pathlib.Path(file).unlink(missing_ok=True)
diff --git a/phases/injector.py b/phases/injector.py
index a73bb6f..1543894 100644
--- a/phases/injector.py
+++ b/phases/injector.py
@@ -107,6 +107,7 @@ class Injector():
self.payload_rva = rdata_section.virt_addr + offset
self.rdata_manager.add_range(offset, offset+len(self.payload.payload_data))
+
## Inject
def inject_exe(self):
@@ -118,7 +119,6 @@ class Injector():
logger.info(" Injectable: {} -> {}".format(exe_in, exe_out))
logger.info(" Implant IAT fixup if necessary: {}".format(self.settings.fix_missing_iat))
-
# Patch IAT (if necessary and wanted)
self.injectable_patch_iat()
diff --git a/supermega.py b/supermega.py
index af94117..f865f40 100644
--- a/supermega.py
+++ b/supermega.py
@@ -148,6 +148,8 @@ def sanity_checks(settings):
def start_real(settings: Settings) -> bool:
"""Main entry point for the application. This is where the magic happens (based on settings)"""
+ #settings.print()
+
# Load our input
project = Project(settings)
if not project.init():
@@ -244,6 +246,8 @@ def start_real(settings: Settings) -> bool:
dllfunc=settings.dllfunc)
if payload_exit_code != 0:
logger.warning("Payload exit code: {}".format(payload_exit_code))
+ return False
+
elif settings.try_start_final_infected_exe:
run_exe(settings.get_inject_exe_out(), dllfunc=settings.dllfunc, check=False)