def udraw_connect (self, host, port): try: self.parent.udraw = utils.udraw_connector(host, port) except: self.parent.status_bar.SetStatusText("Failed connecting to uDraw(Graph) server.") return self.parent.status_bar.SetStatusText("Successfully connected to uDraw(Graph) server at %s." % host) self.parent.status_bar.SetStatusText("uDraw: %s" % host, 4)
def on_connect(self, event): # wxGlade: udraw_connect_dialog.<event_handler> try: host = self.host.GetLineText(0) port = int(self.port.GetLineText(0)) except: self.parent.status_bar.SetStatusText( "Invalid hostname / port combination") self.Destroy() return try: self.parent.udraw = utils.udraw_connector(host, port) except: self.parent.status_bar.SetStatusText( "Failed connecting to uDraw(Graph) server.") self.Destroy() return self.parent.status_bar.SetStatusText( "Successfully connected to uDraw(Graph) server at %s." % host) self.Destroy()
print "updating graph" proximity = vonage.graph_proximity(exception_address, 0, 1) proximity.graph_sub(last_graph) last_graph.graph_cat(proximity) udraw.graph_update(proximity) #udraw.change_element_color("node", last_center, 0xEEF7FF) #udraw.change_element_color("node", exception_address, 0xFF8000) # remove the breakpoint once we've hit it. pydbg.bp_del(exception_address) return DBG_CONTINUE ######################################################################################################################## udraw = utils.udraw_connector() udraw.set_command_handler("node_double_click", udraw_node_double_click) # thread out the udraw connector message loop. thread.start_new_thread(udraw.message_loop, (None, None)) start = time.time() print "loading vonage.exe.pida ...", vonage = pida.load("vonage.exe.pida") print "done. completed in %.02f seconds." % (time.time() - start) dbg = pydbg() dbg.set_callback(EXCEPTION_BREAKPOINT, breakpoint_handler) for (pid, proc) in dbg.enumerate_processes(): if proc.lower().startswith("x-pro-vonage"): break
graph = pgraph.graph() hooks = utils.hook_container() monitor = False allocs = {} for opt, arg in opts: if opt in ("-g", "--graph"): udraw = True if opt in ("-h", "--host"): host = arg if opt in ("-o", "--port"): port = int(arg) if opt in ("-l", "--load"): filename = arg if opt in ("-p", "--pid"): pid = int(arg) if opt in ("-m", "--monitor"): monitor = True if not pid and not filename: ERROR(USAGE) if udraw: udraw = utils.udraw_connector(host, port) print "connection to udraw established..." dbg = pydbg() if pid: dbg.attach(pid) else: dbg.load(filename) dbg.set_callback(EXCEPTION_ACCESS_VIOLATION, access_violation) dbg.set_callback(LOAD_DLL_DEBUG_EVENT, dll_load_handler) dbg.run()
proximity = vonage.graph_proximity(exception_address, 0, 1) proximity.graph_sub(last_graph) last_graph.graph_cat(proximity) udraw.graph_update(proximity) #udraw.change_element_color("node", last_center, 0xEEF7FF) #udraw.change_element_color("node", exception_address, 0xFF8000) # remove the breakpoint once we've hit it. pydbg.bp_del(exception_address) return DBG_CONTINUE ######################################################################################################################## udraw = utils.udraw_connector() udraw.set_command_handler("node_double_click", udraw_node_double_click) # thread out the udraw connector message loop. thread.start_new_thread(udraw.message_loop, (None, None)) start = time.time() print "loading vonage.exe.pida ...", vonage = pida.load("vonage.exe.pida") print "done. completed in %.02f seconds." % (time.time() - start) dbg = pydbg() dbg.set_callback(EXCEPTION_BREAKPOINT, breakpoint_handler) for (pid, proc) in dbg.enumerate_processes(): if proc.lower().startswith("x-pro-vonage"): break
######################################################################################################################## # parse command line options. try: opts, args = getopt.getopt(sys.argv[1:], "h:ip:", ["host=","ida_sync","port="]) except getopt.GetoptError: sys.stderr.write(USAGE + "\n\n") sys.exit(1) for o, a in opts: if o in ("-h", "--host"): udraw_host = a if o in ("-p", "--port"): udraw_port = int(a) if o in ("-i", "--ida_sync"): ida_sync = True try: udraw = utils.udraw_connector(udraw_host, udraw_port) udraw.set_command_handler("node_double_click", udraw_node_double_click) udraw.set_command_handler("node_selections_labels", udraw_node_selections_labels) # thread out the udraw connector message loop. thread.start_new_thread(udraw.message_loop, (None, None)) except socket.error, err: sys.stderr.write("Socket error: %s.\nIs uDraw(Graph) running on %s:%d?\n" % (err[1], udraw_host, udraw_port)) udraw = None # nothing to do... exit. if not ida_sync: sys.exit(1) try: server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# parse command line options. try: opts, args = getopt.getopt(sys.argv[1:], "h:ip:", ["host=", "ida_sync", "port="]) except getopt.GetoptError: sys.stderr.write(USAGE + "\n\n") sys.exit(1) for o, a in opts: if o in ("-h", "--host"): udraw_host = a if o in ("-p", "--port"): udraw_port = int(a) if o in ("-i", "--ida_sync"): ida_sync = True try: udraw = utils.udraw_connector(udraw_host, udraw_port) udraw.set_command_handler("node_double_click", udraw_node_double_click) udraw.set_command_handler("node_selections_labels", udraw_node_selections_labels) # thread out the udraw connector message loop. thread.start_new_thread(udraw.message_loop, (None, None)) except socket.error, err: sys.stderr.write("Socket error: %s.\nIs uDraw(Graph) running on %s:%d?\n" % (err[1], udraw_host, udraw_port)) udraw = None # nothing to do... exit. if not ida_sync: sys.exit(1)