mirror of
https://github.com/dobin/SuperMega
synced 2026-06-02 17:27:10 +00:00
ui: nicer log output and error handling
This commit is contained in:
@@ -35,8 +35,17 @@ def clean_files():
|
||||
|
||||
|
||||
def run_process_checkret(args, check=True):
|
||||
ret = subprocess.run(args,
|
||||
capture_output=True)
|
||||
ret = subprocess.CompletedProcess("", 666)
|
||||
try:
|
||||
ret = subprocess.run(args, capture_output=True)
|
||||
except KeyboardInterrupt:
|
||||
logger.warn("Caught KeyboardInterrupt, exiting gracefully...")
|
||||
except subprocess.CalledProcessError as e:
|
||||
logger.warn(f"Command '{e.cmd}' returned non-zero exit status {e.returncode}.")
|
||||
# Handle the error case
|
||||
except Exception as e:
|
||||
logger.warn(f"An error occurred: {e}")
|
||||
# Handle other exceptions
|
||||
|
||||
with open("logs/cmdoutput.log", "ab") as f:
|
||||
cmd = "------------------------------------\n"
|
||||
@@ -92,12 +101,13 @@ def delete_all_files_in_directory(directory_path):
|
||||
|
||||
|
||||
def rbrunmode_str(rbrunmode):
|
||||
rbrunmode = str(rbrunmode)
|
||||
if rbrunmode == "1":
|
||||
return "change AddressOfEntryPoint"
|
||||
elif rbrunmode == "2":
|
||||
return "hijack branching instruction at Original Entry Point (jmp, call, ...)"
|
||||
else:
|
||||
return "Invalid"
|
||||
return "Invalid: {}".format(rbrunmode)
|
||||
|
||||
|
||||
def hexdump(data, addr = 0, num = 0):
|
||||
|
||||
+2
-1
@@ -8,7 +8,7 @@ import tempfile
|
||||
from pehelper import *
|
||||
from model import *
|
||||
from observer import observer
|
||||
|
||||
from helper import rbrunmode_str
|
||||
from derbackdoorer.derbackdoorer import PeBackdoor
|
||||
|
||||
logger = logging.getLogger("Injector")
|
||||
@@ -23,6 +23,7 @@ def inject_exe(
|
||||
logger.info("--[ Injecting: {} into: {} -> {} mode {}".format(
|
||||
shellcode_in, exe_in, exe_out, inject_mode
|
||||
))
|
||||
logger.warn("--[ Inject mode: {}".format(rbrunmode_str(inject_mode)))
|
||||
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -229,7 +229,7 @@ def start(project: Project):
|
||||
exit_code = phases.injector.verify_injected_exe(project.inject_exe_out)
|
||||
|
||||
elif project.try_start_final_infected_exe:
|
||||
logger.info("--[ Start infected exe")
|
||||
logger.info("--[ Start infected exe: {}".format(project.inject_exe_out))
|
||||
run_process_checkret([
|
||||
project.inject_exe_out,
|
||||
], check=False)
|
||||
@@ -339,10 +339,10 @@ class ListHandler(logging.Handler):
|
||||
|
||||
def setup_logging():
|
||||
root_logger = logging.getLogger()
|
||||
root_logger.setLevel(logging.DEBUG)
|
||||
root_logger.setLevel(logging.INFO)
|
||||
|
||||
ch = logging.StreamHandler()
|
||||
ch.setLevel(logging.DEBUG)
|
||||
ch.setLevel(logging.INFO)
|
||||
ch.setFormatter(CustomFormatter())
|
||||
|
||||
list_handler = ListHandler(log_messages)
|
||||
|
||||
Reference in New Issue
Block a user