Esempio n. 1
0
def save_session(fname=None, session=None, pickleProto=-1):
    if fname is None:
        fname = conf.session
        if not fname:
            conf.session = fname = utils.get_temp_file(keep=True)
            log_interactive.info("Use [%s] as session file" % fname)
    if session is None:
        session = __builtin__.__dict__["scapy_session"]

    to_be_saved = session.copy()
        
    if to_be_saved.has_key("__builtins__"):
        del(to_be_saved["__builtins__"])

    for k in to_be_saved.keys():
        if type(to_be_saved[k]) in [types.TypeType, types.ClassType, types.ModuleType]:
            log_interactive.error("[%s] (%s) can't be saved." % (k, type(to_be_saved[k])))
            del(to_be_saved[k])

    try:
        os.rename(fname, fname+".bak")
    except OSError:
        pass
    f=gzip.open(fname,"wb")
    cPickle.dump(to_be_saved, f, pickleProto)
    f.close()
Esempio n. 2
0
def sendpfast(x, pps=None, mbps=None, realtime=None, loop=0, iface=None):
    """Send packets at layer 2 using tcpreplay for performance
    pps:  packets per second
    mpbs: MBits per second
    realtime: use packet's timestamp, bending time with realtime value
    loop: number of times to process the packet list
    iface: output interface """
    if iface is None:
        iface = conf.iface
    argv = [conf.prog.tcpreplay, "--intf1=%s" % iface ]
    if pps is not None:
        argv.append("--pps=%i" % pps)
    elif mbps is not None:
        argv.append("--mbps=%i" % mbps)
    elif realtime is not None:
        argv.append("--multiplier=%i" % realtime)
    else:
        argv.append("--topspeed")

    if loop:
        argv.append("--loop=%i" % loop)

    f = get_temp_file()
    argv.append(f)
    wrpcap(f, x)
    try:
        subprocess.check_call(argv)
    except KeyboardInterrupt:
        log_interactive.info("Interrupted by user")
    except Exception,e:
        log_interactive.error("while trying to exec [%s]: %s" % (argv[0],e))
Esempio n. 3
0
def save_session(fname=None, session=None, pickleProto=-1):
    if fname is None:
        fname = conf.session
        if not fname:
            conf.session = fname = utils.get_temp_file(keep=True)
            log_interactive.info("Use [%s] as session file" % fname)
    if session is None:
        session = __builtin__.__dict__["scapy_session"]

    to_be_saved = session.copy()
        
    if to_be_saved.has_key("__builtins__"):
        del(to_be_saved["__builtins__"])

    for k in to_be_saved.keys():
        if type(to_be_saved[k]) in [types.TypeType, types.ClassType, types.ModuleType]:
             log_interactive.error("[%s] (%s) can't be saved." % (k, type(to_be_saved[k])))
             del(to_be_saved[k])

    try:
        os.rename(fname, fname+".bak")
    except OSError:
        pass
    f=gzip.open(fname,"wb")
    cPickle.dump(to_be_saved, f, pickleProto)
    f.close()
Esempio n. 4
0
 def pdfdump(self, filename=None, **kargs):
     """pdfdump(filename=None, layer_shift=0, rebuild=1)
     Creates a PDF file describing a packet. If filename is not provided a temporary file is created and xpdf is called."""
     canvas = self.canvas_dump(**kargs)
     if filename is None:
         fname = get_temp_file(autoext=".pdf")
         canvas.writePDFfile(fname)
         subprocess.Popen([conf.prog.pdfreader, fname + ".pdf"])
     else:
         canvas.writePDFfile(filename)
Esempio n. 5
0
 def pdfdump(self, filename=None, **kargs):
     """pdfdump(filename=None, layer_shift=0, rebuild=1)
     Creates a PDF file describing a packet. If filename is not provided a temporary file is created and xpdf is called."""
     canvas = self.canvas_dump(**kargs)
     if filename is None:
         fname = get_temp_file(autoext=".pdf")
         canvas.writePDFfile(fname)
         subprocess.Popen([conf.prog.pdfreader, fname+".pdf"])
     else:
         canvas.writePDFfile(filename)
Esempio n. 6
0
File: plist.py Progetto: 0x0d/hijack
 def pdfdump(self, filename = None, **kargs):
     """Creates a PDF file with a psdump of every packet
     filename: name of the file to write to. If empty, a temporary file is used and
               conf.prog.pdfreader is called"""
     d = self._dump_document(**kargs)
     if filename is None:
         filename = get_temp_file(autoext=".pdf")
         d.writePDFfile(filename)
         subprocess.Popen([conf.prog.pdfreader, filename+".pdf"])
     else:
         d.writePDFfile(filename)
     print
Esempio n. 7
0
def scapy_write_history_file(readline):
    if conf.histfile:
        try:
            readline.write_history_file(conf.histfile)
        except IOError,e:
            try:
                warning("Could not write history to [%s]\n\t (%s)" % (conf.histfile,e))
                tmp = utils.get_temp_file(keep=True)
                readline.write_history_file(tmp)
                warning("Wrote history to [%s]" % tmp)
            except:
                warning("Cound not write history to [%s]. Discarded" % tmp)
Esempio n. 8
0
 def pdfdump(self, filename=None, **kargs):
     """Creates a PDF file with a psdump of every packet
     filename: name of the file to write to. If empty, a temporary file is used and
               conf.prog.pdfreader is called"""
     d = self._dump_document(**kargs)
     if filename is None:
         filename = get_temp_file(autoext=".pdf")
         d.writePDFfile(filename)
         subprocess.Popen([conf.prog.pdfreader, filename + ".pdf"])
     else:
         d.writePDFfile(filename)
     print
Esempio n. 9
0
def scapy_write_history_file(readline):
    if conf.histfile:
        try:
            readline.write_history_file(conf.histfile)
        except IOError,e:
            try:
                warning("Could not write history to [%s]\n\t (%s)" % (conf.histfile,e))
                tmp = utils.get_temp_file(keep=True)
                readline.write_history_file(tmp)
                warning("Wrote history to [%s]" % tmp)
            except:
                warning("Cound not write history to [%s]. Discarded" % tmp)
Esempio n. 10
0
    def psdump(self, filename=None, **kargs):
        """psdump(filename=None, layer_shift=0, rebuild=1)
Creates an EPS file describing a packet. If filename is not provided a temporary file is created and gs is called."""
        canvas = self.canvas_dump(**kargs)
        if filename is None:
            fname = get_temp_file(autoext=".eps")
            canvas.writeEPSfile(fname)
            if WINDOWS:
                subprocess.Popen('"'+conf.prog.psreader+'" "'+fname+'.eps"')
            else:
                subprocess.Popen([conf.prog.psreader, fname+".eps"])
        else:
            canvas.writeEPSfile(filename)
Esempio n. 11
0
    def psdump(self, filename=None, **kargs):
        """psdump(filename=None, layer_shift=0, rebuild=1)
Creates an EPS file describing a packet. If filename is not provided a temporary file is created and gs is called."""
        canvas = self.canvas_dump(**kargs)
        if filename is None:
            fname = get_temp_file(autoext=".eps")
            canvas.writeEPSfile(fname)
            if WINDOWS:
                subprocess.Popen('"' + conf.prog.psreader + '" "' + fname +
                                 '.eps"')
            else:
                subprocess.Popen([conf.prog.psreader, fname + ".eps"])
        else:
            canvas.writeEPSfile(filename)
def sendpfast(x, pps=None, mbps=None, realtime=None, loop=0, file_cache=False, iface=None, additional_options=None):
    """Send packets at layer 2 using tcpreplay for performance
    pps:  packets per second
    mpbs: MBits per second
    realtime: use packet's timestamp, bending time with realtime value
    loop: number of times to process the packet list
    file_cache: cache packets in RAM instead of reading from disk at each iteration
    iface: output interface
    additional_options: other commandline options, e.g. '--timer=gtod --preload-pcap'"""
    if iface is None:
        iface = conf.iface
    argv = [conf.prog.tcpreplay, "--intf1=%s" % iface ]
    if pps is not None:
        argv.append("--pps=%i" % pps)
    elif mbps is not None:
        argv.append("--mbps=%i" % mbps)
    elif realtime is not None:
        argv.append("--multiplier=%i" % realtime)
    else:
        argv.append("--topspeed")

    if loop:
        argv.append("--loop=%i" % loop)
        if file_cache:
            argv.append("--enable-file-cache")
    if additional_options is not None:
        argv.extend(additional_options.split())
    f = get_temp_file()
    argv.append(f)
    wrpcap(f, x)
    try:
        subprocess.check_call(argv)
    except KeyboardInterrupt:
        log_interactive.info("Interrupted by user")
    except Exception,e:
        log_interactive.error("while trying to exec [%s]: %s" % (argv[0],e))