Exemple #1
0
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")
Exemple #2
0
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")
Exemple #3
0
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
Exemple #4
0
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))