Esempio n. 1
0
def invoke_server(signum, frame):
    """This function sets up a signal handler, which when it
    traps a signal, starts a debugging server suitable for other
    debugging clients to connect to.
    """
    p = Gdb()
    p._sys_argv = list(sys.argv)

    from remote import RemoteWrapperServer
    p = RemoteWrapperServer(p)
    p.do_pydbserver(server_addr)

    p.set_trace(frame)

    import signal
    signal.signal(signum, old_handler)
import sys
import struct

from gdb import Gdb
from ptrace.debugger import PtraceDebugger, ProcessSignal, ProcessExit

pid = sys.argv[1]
gdb = Gdb()
gdb.debugger = PtraceDebugger()
gdb.process = None

gdb.attachProcess(pid)
print("[!] attached to {0}".format(pid))

#gdb.breakpoint("0x80487e0")
gdb.breakpoint("0x080487d6")
gdb.breakpoint("0x08048802")
while (True):

    try:
        gdb.cont()
        eip = gdb.process.getreg("eip")
        print("EIP: {0}".format(hex(eip)))

        #if eip == 0x80487e0:
        #    print("pipe descriptor: {0}".format(hex(gdb.process.getreg("eax"))))

        # WRITE WHERE
        if eip == 0x80487d6:
            eax = gdb.process.getreg("eax")
            i = gdb.process.readBytes(eax, 4)
Esempio n. 3
0
 def __init__(self, vim):
     self.vim = vim
     self.gdb = Gdb(vim)
Esempio n. 4
0
handler = logging.FileHandler('/tmp/dbug.log', 'w')
handler.formatter = logging.Formatter(
    '%(msecs)6d %(levelname)-5s   %(message)s')
logger = logging.getLogger(__name__)
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)

bpdb = BreakpointDB()
from gdb import Gdb

try:
    logger.info("\n\n\n\n\n")

    if len(sys.argv) == 1:
        gdb = Gdb()
        logger.info("GDB server started")
    elif len(sys.argv) == 2:
        gdb_path = sys.argv[1]
        gdb = Gdb(gdb_path=gdb_path)
        logger.info("GDB server started %s" % (gdb_path))

    while True:
        msg = vim.recv_msg()

        if msg["name"] == "file":
            filepath = msg["path"]

            gdb.file_and_exec_symbols(filepath)

        elif msg["name"] == "remote":
Esempio n. 5
0
 def __init__(self, pid):
     self.process = Process(pid)
     self.gdb = Gdb(pid)
     self.io_read_bytes = 0
     self.io_write_bytes = 0
     self.about = (self.process.name, pid, datetime.now())