def Main(): """Main IRC loop.""" networks = CONFIG.get("networks", type="list") log.setup_logger() LOG.info("Starting %s" % version.version_string()) LOG.info("Connecting to IRC Networks: %s" % ", ".join(networks)) procs = [] for network in networks: proc = Process(network) proc.start() procs.append(proc) try: while True: time.sleep(1) for proc in procs: if not proc.is_alive(): procs.remove(proc) if not procs: LOG.info("No longer connected to any networks, shutting down") sys.exit(0) except KeyboardInterrupt: LOG.info("Caught KeyboardInterrupt, shutting down")
def main(args): logging.basicConfig( filename = 'log/{}.log'.format(args.log_name), level = logging.DEBUG, format = '%(name)s(%(levelname)s) - %(message)s' ) if 'bookSamples' in args: booked_names = args.bookSamples if args.bookSamples else SAMPLES.keys() for name, properties in SAMPLES.iteritems(): if name not in booked_names: continue sample = Sample(name, **properties) try: sample.make() except: raise if 'bookProcesses' in args: booked_names = args.bookProcesses if args.bookProcesses else PROCESSES.keys() for name, properties in PROCESSES.iteritems(): if name not in booked_names: continue process = Process(name, **properties) try: process.make() except: raise
def interproc_start_monitoring_process(params): ''' Given a Process instance, do the magic to start monitoring the process for the interproc module ''' global cm global interproc_data import api from core import Process from api import CallbackManager # Get parameters pid = params["pid"] pgd = params["pgd"] name = params["name"] proc = Process(name) proc.set_pgd(pgd) proc.set_pid(pid) # Append process to process list interproc_data.add_process(proc) # add_module, for every module loaded so far for this process. Because # this function might be triggered by a call to NtOpenProcess over # an already existing process try: for mod in api.get_module_list(pgd): add_module(proc, {"pid": pid, "pgd": pgd, "base": mod["base"], "size": mod["size"], "name": mod["name"], "fullname": mod["fullname"]}) # Callback for each module loaded cm.add_callback(CallbackManager.LOADMODULE_CB, functools.partial(module_loaded, proc), pgd = pgd, name = ("load_module_%x" % pgd)) except ValueError: # Could happen that the process is still not on the list of # created processes pp_debug("Process still not in the list of created processes, setting CB on TLB exec.\n") cm.add_callback(CallbackManager.TLB_EXEC_CB, functools.partial(tlb_exec, proc), name=("tlb_exec_%d" % pgd))