mirror of
https://github.com/dobin/SuperMega
synced 2026-06-02 17:27:10 +00:00
feature: web: start
This commit is contained in:
@@ -18,7 +18,6 @@
|
||||
<div class="col-md-3">
|
||||
|
||||
<form method="POST" enctype="multipart/form-data" action="/add_project">
|
||||
|
||||
|
||||
<div class="row row-cols-lg-auto g-3">
|
||||
|
||||
@@ -64,7 +63,7 @@
|
||||
{% for name, value in decoderstyles %}
|
||||
<option value="{{name}}"
|
||||
{% if value in project.settings.decoder_style.value %} selected {% endif %}
|
||||
>{{value}} // {{project.settings.decoder_style.value}}</option>
|
||||
>{{value}}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
|
||||
@@ -85,10 +84,14 @@
|
||||
</select>
|
||||
|
||||
<button class="btn btn-primary" type="submit" value="save">Save</button>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<form method="POST" enctype="multipart/form-data" action="/start_project">
|
||||
<input type="hidden" name="project_name" value="{{project_name}}">
|
||||
<button class="btn btn-primary" type="submit" value="start">Start</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+14
-3
@@ -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():
|
||||
|
||||
+12
-8
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user