Using PyDBG
We can use the PyDBG module to debug executables in run time. We can go through a basic script with PyDBG to understand how it works.
First, we import the modules:
from pydbg import * import sys
Then we define a function to handle the breakpoint. Also, it takes the pydbg
instance as the argument. Inside this function, it prints out the execution context of the process and instructs pydbg
to continue:
define breakpoint_handler(dbg): print dbg.dump_context() return DBG_CONTINUE
Then we initialize the pydbg
instance and set the handler_breakpoint
function to handle the breakpoint exception:
dbg = pydbg() dbg.set_callback(EXEPTION_BREAKPOINT, breakpoint_handler)
Then attach the process ID of the process which we need to debug using pydbg
:
dbg.attach(int(sys.argv[1]))
Next we will set the address at which to trigger the breakpoint. Here, we use bp_set()
function, which accepts three arguments. The first is the address at which to set the breakpoint, the second is an optional description...