diff --git a/app/templates/project.html b/app/templates/project.html
index 0d7710f..3eda8dd 100644
--- a/app/templates/project.html
+++ b/app/templates/project.html
@@ -18,7 +18,6 @@
diff --git a/app/views.py b/app/views.py
index 49d0aea..195ad7e 100644
--- a/app/views.py
+++ b/app/views.py
@@ -21,6 +21,7 @@ from app.storage import storage, Project
views = Blueprint('views', __name__)
conv = Ansi2HTMLConverter()
+config.load()
@views.route("/")
@@ -64,12 +65,15 @@ def project(name):
@views.route("/add_project", methods=['POST', 'GET'])
def inject():
if request.method == 'POST':
- config.load()
settings = Settings()
project_name = request.form['project_name']
settings.payload_path = "app/upload/shellcode/" + request.form['shellcode']
+ if request.form['shellcode'] == "createfile.bin":
+ settings.verify = True
+ settings.try_start_final_infected_exe = False
+
settings.inject_exe_in = "app/upload/exe/" + request.form['exe']
settings.inject_exe_out = "app/upload/infected/" + request.form['exe'] + ".injected"
@@ -124,8 +128,15 @@ def inject():
injectstyles=injectstyles,
)
- #start(settings)
-
+
+@views.route("/start_project", methods=['POST', 'GET'])
+def start_project():
+ #project_name = request.args.get('project_name')
+ project_name = request.form['project_name']
+ project = storage.get_project(project_name)
+ start(project.settings)
+ return redirect("/project/{}".format(project_name), code=302)
+
@views.route("/build")
def build():
diff --git a/supermega.py b/supermega.py
index 07e9f51..1b76ccc 100644
--- a/supermega.py
+++ b/supermega.py
@@ -163,14 +163,18 @@ def start(settings: Settings):
# Compile: Carrier to .asm (C -> ASM)
if settings.generate_asm_from_c:
- phases.compiler.compile(
- c_in = main_c_file,
- asm_out = main_asm_file,
- payload_len = project.payload.len,
- carrier = project.carrier,
- source_style = project.settings.source_style,
- exe_host = project.exe_host,
- short_call_patching = project.settings.short_call_patching)
+ try:
+ phases.compiler.compile(
+ c_in = main_c_file,
+ asm_out = main_asm_file,
+ payload_len = project.payload.len,
+ carrier = project.carrier,
+ source_style = project.settings.source_style,
+ exe_host = project.exe_host,
+ short_call_patching = project.settings.short_call_patching)
+ except Exception as e:
+ logger.error(f'Error compiling: {e}')
+ return exit(1)
# Assemble: Assemble .asm to .shc (ASM -> SHC)
if settings.generate_shc_from_asm: