fix: fix shcdev

This commit is contained in:
Dobin
2024-03-30 21:46:00 +00:00
parent db3fe6e889
commit 75f3a76786
+12 -18
View File
@@ -10,7 +10,6 @@ from pygments.formatters import HtmlFormatter
import difflib import difflib
from ansi2html import Ansi2HTMLConverter from ansi2html import Ansi2HTMLConverter
import subprocess import subprocess
import time
from datetime import datetime from datetime import datetime
from observer import observer from observer import observer
@@ -23,7 +22,7 @@ from sender import scannerDetectsBytes
from phases.injector import verify_injected_exe from phases.injector import verify_injected_exe
from phases.compiler import compile_dev from phases.compiler import compile_dev
from phases.assembler import asm_to_shellcode from phases.assembler import asm_to_shellcode
from helper import run_process_checkret from helper import run_process_checkret, clean_tmp_files
from model.project import prepare_project from model.project import prepare_project
views = Blueprint('views', __name__) views = Blueprint('views', __name__)
@@ -81,12 +80,14 @@ def dev_route(name):
info = "input C code" info = "input C code"
elif filename.endswith(".exe"): elif filename.endswith(".exe"):
info = "temporary shellcode holder (from .c)" info = "temporary shellcode holder (from .c)"
elif filename.endswith(".log"): elif filename.endswith("cmdoutput.log"):
info = "log file" info = "command output"
with open(path + "/" + filename, "r") as f: with open(path + "/" + filename, "r") as f:
log = f.read() log += f.read() + "\n-----------------------------------\n"
elif filename.endswith("supermega.log"):
#print(log) info = "supermega logging output"
with open(path + "/" + filename, "r") as f:
log += f.read()
data.append({ data.append({
"name": filename, "name": filename,
@@ -105,26 +106,19 @@ def dev_build_route(name):
asm_out = PATH_PAYLOAD + "{}/main.asm".format(name) asm_out = PATH_PAYLOAD + "{}/main.asm".format(name)
build_exe = PATH_PAYLOAD + "{}/main.exe".format(name) build_exe = PATH_PAYLOAD + "{}/main.exe".format(name)
shellcode_out = PATH_PAYLOAD + "{}/main.bin".format(name) shellcode_out = PATH_PAYLOAD + "{}/main.bin".format(name)
log = PATH_PAYLOAD + "{}/main.log".format(name)
compile_dev(c_in, asm_out) compile_dev(c_in, asm_out)
asm_to_shellcode(asm_out, build_exe, shellcode_out) asm_to_shellcode(asm_out, build_exe, shellcode_out)
observer.write_logs(PATH_PAYLOAD + "{}/".format(name))
with open(log, "w") as f: clean_tmp_files()
for log_line in observer.getlog():
f.write("{}\n".format(log_line))
f.write("\n\n")
for log in observer.logs:
f.write("{}".format(log))
return redirect("/shcdev/{}".format(name), code=302) return redirect("/shcdev/{}".format(name), code=302)
@views.route("/project/<name>") @views.route("/project/<name>")
def project(name): def project(name):
project = storage.get_project(name) project = storage.get_project(name)
if project == None:
return redirect("/projects", code=302)
log_files = get_logfiles(project.settings.main_dir) log_files = get_logfiles(project.settings.main_dir)
exes = [] exes = []