mirror of
https://github.com/dobin/SuperMega
synced 2026-06-03 01:27:11 +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):
|
def run_process_checkret(args, check=True):
|
||||||
ret = subprocess.run(args,
|
ret = subprocess.CompletedProcess("", 666)
|
||||||
capture_output=True)
|
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:
|
with open("logs/cmdoutput.log", "ab") as f:
|
||||||
cmd = "------------------------------------\n"
|
cmd = "------------------------------------\n"
|
||||||
@@ -92,12 +101,13 @@ def delete_all_files_in_directory(directory_path):
|
|||||||
|
|
||||||
|
|
||||||
def rbrunmode_str(rbrunmode):
|
def rbrunmode_str(rbrunmode):
|
||||||
|
rbrunmode = str(rbrunmode)
|
||||||
if rbrunmode == "1":
|
if rbrunmode == "1":
|
||||||
return "change AddressOfEntryPoint"
|
return "change AddressOfEntryPoint"
|
||||||
elif rbrunmode == "2":
|
elif rbrunmode == "2":
|
||||||
return "hijack branching instruction at Original Entry Point (jmp, call, ...)"
|
return "hijack branching instruction at Original Entry Point (jmp, call, ...)"
|
||||||
else:
|
else:
|
||||||
return "Invalid"
|
return "Invalid: {}".format(rbrunmode)
|
||||||
|
|
||||||
|
|
||||||
def hexdump(data, addr = 0, num = 0):
|
def hexdump(data, addr = 0, num = 0):
|
||||||
|
|||||||
+2
-1
@@ -8,7 +8,7 @@ import tempfile
|
|||||||
from pehelper import *
|
from pehelper import *
|
||||||
from model import *
|
from model import *
|
||||||
from observer import observer
|
from observer import observer
|
||||||
|
from helper import rbrunmode_str
|
||||||
from derbackdoorer.derbackdoorer import PeBackdoor
|
from derbackdoorer.derbackdoorer import PeBackdoor
|
||||||
|
|
||||||
logger = logging.getLogger("Injector")
|
logger = logging.getLogger("Injector")
|
||||||
@@ -23,6 +23,7 @@ def inject_exe(
|
|||||||
logger.info("--[ Injecting: {} into: {} -> {} mode {}".format(
|
logger.info("--[ Injecting: {} into: {} -> {} mode {}".format(
|
||||||
shellcode_in, exe_in, exe_out, inject_mode
|
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)
|
exit_code = phases.injector.verify_injected_exe(project.inject_exe_out)
|
||||||
|
|
||||||
elif project.try_start_final_infected_exe:
|
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([
|
run_process_checkret([
|
||||||
project.inject_exe_out,
|
project.inject_exe_out,
|
||||||
], check=False)
|
], check=False)
|
||||||
@@ -339,10 +339,10 @@ class ListHandler(logging.Handler):
|
|||||||
|
|
||||||
def setup_logging():
|
def setup_logging():
|
||||||
root_logger = logging.getLogger()
|
root_logger = logging.getLogger()
|
||||||
root_logger.setLevel(logging.DEBUG)
|
root_logger.setLevel(logging.INFO)
|
||||||
|
|
||||||
ch = logging.StreamHandler()
|
ch = logging.StreamHandler()
|
||||||
ch.setLevel(logging.DEBUG)
|
ch.setLevel(logging.INFO)
|
||||||
ch.setFormatter(CustomFormatter())
|
ch.setFormatter(CustomFormatter())
|
||||||
|
|
||||||
list_handler = ListHandler(log_messages)
|
list_handler = ListHandler(log_messages)
|
||||||
|
|||||||
Reference in New Issue
Block a user