diff --git a/TODO b/TODO index d596ec3..baed916 100644 --- a/TODO +++ b/TODO @@ -10,8 +10,17 @@ TODO: - Clean / (rethink?) vectored_exception (+rename exception.py? context.py?) - Test !! (bp, BP_HX, bp on only on process, bp_hx on only one thread..) + - Injection with suspended process ? + - FIX/add test (inject suspended 32 -> 64) + - VEH: + - reprise sur erreur + - reprise context modification + FIXME: - WMI - COM initialisation when injected in another process - The CoInitialize might be already called - - Fix that \ No newline at end of file + - Fix that + + - setup.py build seems to raise an error + - winutils.create_process : use WinProcess._from_handle \ No newline at end of file diff --git a/windows/debug.py b/windows/debug.py index 10b81ad..b9be50a 100644 --- a/windows/debug.py +++ b/windows/debug.py @@ -12,7 +12,6 @@ from .generated_def import windef from collections import defaultdict - STANDARD_BP = "BP" HARDWARE_EXEC_BP = "HXBP" @@ -38,12 +37,9 @@ class Debugger(object): self.threads = {} self.current_process = None self.current_thread = None - # List of breakpoints self.breakpoints = {} - self._pending_breakpoints = {} #Breakpoints to put in new process / threads - # Values rewritten by "\xcc" self._memory_save = defaultdict(dict) # Dict of {tid : {drx taken : BP}} @@ -90,24 +86,6 @@ class Debugger(object): bp.trigger(self, exception) return bp - # Breakpoint stuff - #def _setup_breakpoint(self, bp, target): - # if bp.type != 0: - # raise NotImplementedError("BP TYPE != 0 (TODO)") - # if target is None: - # targets = self.processes.items() - # # Raise on multiple pending at same addr ? - # # We will add the pending breakpoint to other new processes - # self._pending_breakpoints[bp.addr] = (bp, target) - # else: - # targets = [(target.pid, target)] - # - # for pid, process in targets: - # self._break_metadata[pid][bp.addr] = process.read_memory(bp.addr, 1) - # #print("Write BP: {0} at {1}".format(process, addr)) - # process.write_memory(bp.addr, "\xcc") - # return - def _setup_breakpoint_BP(self, bp, targets): for target in targets: @@ -210,8 +188,6 @@ class Debugger(object): self.on_exception(exception) - - def _handle_create_process(self, debug_event): """Handle CREATE_PROCESS_DEBUG_EVENT""" create_process = debug_event.u.CreateProcessInfo @@ -287,7 +263,6 @@ class Debugger(object): self._dispatch_debug_event(debug_event) self._finish_debug_event(debug_event, windef.DBG_CONTINUE) if not self.processes: - # No More process to debug break def add_bp(self, bp, addr=None, type=None, target=None): diff --git a/windows/test/mytest.py b/windows/test/mytest.py index e61834c..d3d1b26 100644 --- a/windows/test/mytest.py +++ b/windows/test/mytest.py @@ -54,8 +54,6 @@ def Calc64(exit_code=0): finally: calc.exit(exit_code) - - @contextmanager def Calc32(exit_code=0): try: diff --git a/windows/winobject.py b/windows/winobject.py index e0323d5..5b4bfb3 100644 --- a/windows/winobject.py +++ b/windows/winobject.py @@ -745,8 +745,6 @@ class WinProcess(PROCESSENTRY32, Process): return winproxy.TerminateProcess(self.handle, code) - - # Create ProcessToken and Thread Token objects ? class Token(AutoHandle): def __init__(self, handle):