feature: open folder (no_exec)

This commit is contained in:
Dobin
2024-03-23 18:18:43 +00:00
parent 4f9f85d25c
commit 11ec4a785b
5 changed files with 46 additions and 9 deletions
+16 -2
View File
@@ -83,15 +83,19 @@
<div class="col-3">
<div class="row">
<div class="col-6">
<button class="btn btn-primary" type="submit" value="save">Save Settings</button>
</form>
</div>
</div>
<div class="col-6">
<div class="row">
<form method="POST" enctype="multipart/form-data" action="/build_project">
<input type="hidden" name="project_name" value="{{project_name}}">
<button class="btn btn-primary" type="submit" value="start">Build</button>
</form>
</div>
</div>
<div class="row">
@@ -100,12 +104,22 @@
<input type="hidden" name="project_name" value="{{project_name}}">
<button class="btn btn-primary" type="submit" value="start">Start Local</button>
</form>
<form method="POST" enctype="multipart/form-data" action="/exec_project?no_exec=true">
<input type="hidden" name="project_name" value="{{project_name}}">
<button class="btn btn-primary" type="submit" value="start">File Local</button>
</form>
</div>
<div class="col-6">
<form method="POST" enctype="multipart/form-data" action="/exec_project?remote=true">
<input type="hidden" name="project_name" value="{{project_name}}">
<button class="btn btn-primary" type="submit" value="start">Start Remote</button>
</form>
<form method="POST" enctype="multipart/form-data" action="/exec_project?remote=true&no_exec=true">
<input type="hidden" name="project_name" value="{{project_name}}">
<button class="btn btn-primary" type="submit" value="start">File Remote</button>
</form>
</div>
</div>
</div>
+22 -5
View File
@@ -1,4 +1,4 @@
from flask import Flask, Blueprint, current_app, request, redirect, url_for, render_template, send_file, make_response, session, escape
from flask import Flask, Blueprint, current_app, request, redirect, url_for, render_template, send_file, make_response, session, escape, jsonify
from threading import Thread
from werkzeug.utils import secure_filename
import os
@@ -10,6 +10,7 @@ from pygments.formatters import HtmlFormatter
import difflib
from ansi2html import Ansi2HTMLConverter
import shutil
import subprocess
from config import config
from model.settings import Settings
@@ -196,27 +197,43 @@ def start_project():
if remote_arg == "true":
remote = True
no_exec = False
no_exec_arg = request.args.get('no_exec')
if no_exec_arg == "true":
no_exec = True
logger.info("--[ Exec project: {} remote: {} no_exec: {}".format(project_name, remote, no_exec))
if remote:
logger.info("--[ Exec {} on server {}".format(project.project_exe, config.get("avred_server")))
filepath = "{}/{}".format(project.project_dir, project.project_exe)
with open(filepath, "rb") as f:
data = f.read()
try:
scannerDetectsBytes(data, project.project_exe, useBrotli=True, verify=project.settings.verify)
scannerDetectsBytes(data,
project.project_exe,
useBrotli=True,
verify=project.settings.verify,
no_exec=no_exec)
except Exception as e:
logger.error(f'Error scanning: {e}')
return 4
return jsonify({
"exception": str(e)
}), 500
else:
logger.info("--[ Exec {} locally".format(project.project_exe))
# Start/verify it at the end
if project.settings.verify:
logger.info("--[ Verify infected exe")
exit_code = verify_injected_exe(project.settings.inject_exe_out)
else:
elif no_exec == False:
logger.info("--[ Start infected exe: {}".format(project.settings.inject_exe_out))
run_process_checkret([
project.settings.inject_exe_out,
], check=False)
elif no_exec == True:
dirname = os.path.dirname(os.path.abspath(project.settings.inject_exe_out))
logger.info("--[ Open folder: {}".format(dirname))
subprocess.run(['explorer', dirname])
return redirect("/project/{}".format(project_name), code=302)