diff --git a/scapy/ansmachine.py b/scapy/ansmachine.py index adf7f1f32226bb196d1d5b8dea57691f106866da..1c4f0762658abb8069a3f22f87c80b84de1b6595 100644 --- a/scapy/ansmachine.py +++ b/scapy/ansmachine.py @@ -2,7 +2,9 @@ ## Answering machines ## ######################## -from sendrecv import send,sendp +from sendrecv import send,sendp,sniff +from config import conf +from error import log_interactive class ReferenceAM(type): def __new__(cls, name, bases, dct): diff --git a/scapy/asn1/asn1.py b/scapy/asn1/asn1.py index 40bc88c90cae17a75c708333a86062e47b542414..2b1ffd22a83ff0b09feeadd8cd1869be2b2f8884 100644 --- a/scapy/asn1/asn1.py +++ b/scapy/asn1/asn1.py @@ -1,5 +1,6 @@ import random -from scapy.error import Scapy_Exception +from scapy.config import conf +from scapy.error import Scapy_Exception,warning from scapy.volatile import RandField from scapy.utils import Enum_metaclass, EnumElement diff --git a/scapy/asn1/ber.py b/scapy/asn1/ber.py index 6d0e748726a5059a86ed3f2886a08a6c91e34517..abe99cd34c40c2838ab61d3ebb52f5abc16ff869 100644 --- a/scapy/asn1/ber.py +++ b/scapy/asn1/ber.py @@ -1,4 +1,5 @@ -from asn1 import ASN1_Decoding_Error,ASN1_BadTag_Decoding_Error,ASN1_Codecs,ASN1_Class_UNIVERSAL +from scapy.error import warning +from asn1 import ASN1_Decoding_Error,ASN1_BadTag_Decoding_Error,ASN1_Codecs,ASN1_Class_UNIVERSAL,ASN1_Error,ASN1_DECODING_ERROR,ASN1_BADTAG ################## ## BER encoding ## diff --git a/scapy/asn1/mib.py b/scapy/asn1/mib.py index d87177162e711d7f1e6aa69b2111440caa6f2f45..f815a35d3575da73ca521dcbe4fe72821f8bec4b 100644 --- a/scapy/asn1/mib.py +++ b/scapy/asn1/mib.py @@ -1,7 +1,8 @@ import re from glob import glob -from scapy.dadict import DADict +from scapy.dadict import DADict,fixname from scapy.config import conf +from scapy.utils import do_graph ################# ## MIB parsing ## diff --git a/scapy/automaton.py b/scapy/automaton.py index 5893c957c2bc54e842736e1ed8c5e033dfb929cd..2c99213fbcecb114d4a3fcfcc8c33b35844a0385 100644 --- a/scapy/automaton.py +++ b/scapy/automaton.py @@ -1,6 +1,10 @@ import types,itertools,time from select import select from config import conf +from utils import do_graph +from error import log_interactive +from plist import PacketList +from data import MTU ############## ## Automata ## diff --git a/scapy/autorun.py b/scapy/autorun.py index 4fc93fd774c2a6868d78fc02a3fa71f1f6877a78..e5ca2f8a4014d26e5c2805bcaeeba1a360205338 100644 --- a/scapy/autorun.py +++ b/scapy/autorun.py @@ -1,4 +1,6 @@ import code,sys +from config import conf +from themes import * from error import Scapy_Exception ######################### diff --git a/scapy/config.py b/scapy/config.py index fdf12aa2456af9863e3d3dbf1b1579814fab29b4..93bcfe7e9182411b912cb131193922e9338263ac 100644 --- a/scapy/config.py +++ b/scapy/config.py @@ -171,7 +171,9 @@ extensions_paths: path or list of paths where extensions are to be looked for services_tcp = TCP_SERVICES services_udp = UDP_SERVICES extensions_paths = "." - manufdb = load_manuf("/usr/share/wireshark/wireshark/manuf") + manufdb = load_manuf("/usr/share/wireshark/wireshark/manuf") + stats_classic_protocols = [] + stats_dot11_protocols = [] conf=Conf() diff --git a/scapy/data.py b/scapy/data.py index 889b66c502c2c8b961cd3c1f7d2129acbf8f5f25..d3f8f92d7b55e59d6a8f790c7dbd427378cf930f 100644 --- a/scapy/data.py +++ b/scapy/data.py @@ -1,5 +1,6 @@ import re from dadict import DADict +from error import log_loading ############ ## Consts ## diff --git a/scapy/error.py b/scapy/error.py index ad375b8a238aee023fd063c8461455663cd8ba7b..0dfcc74a5f01b5c4fd2852c62f308b264b580c96 100644 --- a/scapy/error.py +++ b/scapy/error.py @@ -13,6 +13,7 @@ class ScapyFreqFilter(logging.Filter): logging.Filter.__init__(self) self.warning_table = {} def filter(self, record): + from config import conf wt = conf.warning_threshold if wt > 0: stk = traceback.extract_stack() diff --git a/scapy/fields.py b/scapy/fields.py index 637e706a0c5857995904e2f16d3c6f72cccc27cf..b402ac391ae3acd7b371e162f41dd51d082c1128 100644 --- a/scapy/fields.py +++ b/scapy/fields.py @@ -1,8 +1,11 @@ import struct,copy,socket +from config import conf +from volatile import VolatileValue from data import * from utils import * from base_classes import BasePacket + ############ ## Fields ## ############ diff --git a/scapy/layers/dot11.py b/scapy/layers/dot11.py index b09058fd2ffe77c896d20675ed5571823f36d842..a6593fec5f43e7546dcb8e75a689e7a1766870fa 100644 --- a/scapy/layers/dot11.py +++ b/scapy/layers/dot11.py @@ -467,3 +467,4 @@ iwconfig wlan0 mode managed +conf.stats_dot11_protocols += [Dot11WEP, Dot11Beacon, ] diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py index 860858f942f8766603176712136406e29492440b..acda9a28f965a89b842c3617b22c09d9aa056804 100644 --- a/scapy/layers/inet.py +++ b/scapy/layers/inet.py @@ -817,3 +817,5 @@ def fragleak2(target, timeout=0.4, onlyasc=0): pass +conf.stats_classic_protocols += [TCP,UDP,ICMP] +conf.stats_dot11_protocols += [TCP,UDP,ICMP] diff --git a/scapy/main.py b/scapy/main.py index 99febe18d9ed0be5fe19585f69ee49c04a74f5c2..ca30a04b96a47051ece2b10d8885efc1098fbd71 100644 --- a/scapy/main.py +++ b/scapy/main.py @@ -79,7 +79,7 @@ def scapy_write_history_file(readline): def interact(mydict=None,argv=None,mybanner=None,loglevel=1): global session - import code,sys,cPickle,types,os,imp,getopt,logging,re + import code,sys,cPickle,os,imp,getopt,logging,re logging.getLogger("scapy").setLevel(loglevel) @@ -112,7 +112,7 @@ def interact(mydict=None,argv=None,mybanner=None,loglevel=1): __builtin__.__dict__.update(mydict) globkeys += mydict.keys() - import re, atexit + import atexit try: import rlcompleter,readline except ImportError: diff --git a/scapy/modules/queso.py b/scapy/modules/queso.py index de29726e64daa361b1844684e63af39ef144cc35..db85b7aef953c55fa4ada77568fd2ce327d1dc86 100644 --- a/scapy/modules/queso.py +++ b/scapy/modules/queso.py @@ -1,5 +1,7 @@ from scapy.data import KnowledgeBase from scapy.config import conf +from scapy.layers.inet import IP,TCP +#from conf.queso_base ="/etc/queso.conf" diff --git a/scapy/modules/voip.py b/scapy/modules/voip.py index df2e4f8c5bcae5e0bd67c1a388817ee9f74a0980..f2a0835197d3d8172f240f7166091ad2f10c957d 100644 --- a/scapy/modules/voip.py +++ b/scapy/modules/voip.py @@ -3,14 +3,20 @@ import os ## Testing stuff ## ################### +from fcntl import fcntl +from scapy.sendrecv import sniff +from scapy.packet import Raw +from scapy.layers.inet import IP,UDP +from scapy.layers.rtp import RTP -def merge(x,y): +def merge(x,y,sample_size=2): if len(x) > len(y): y += "\x00"*(len(x)-len(y)) elif len(x) < len(y): x += "\x00"*(len(y)-len(x)) m = "" + ss=sample_size for i in range(len(x)/ss): m += x[ss*i:ss*(i+1)]+y[ss*i:ss*(i+1)] return m diff --git a/scapy/plist.py b/scapy/plist.py index 65b4a7acdf169b6dfbbb148de1afcaf569de4b6c..2d99389910d24f73e9fc69852aaa1f7667fa0a1e 100644 --- a/scapy/plist.py +++ b/scapy/plist.py @@ -3,6 +3,18 @@ from config import conf from error import warning from base_classes import BasePacket,BasePacketList +from utils import incremental_label,colgen,do_graph,hexdump,make_table,make_lined_table,make_tex_table +from packet import Padding,Raw +from sendrecv import sr +from layers.inet import IP,TCP,UDP,ICMP +from layers.l2 import Ether +from layers.dot11 import Dot11 +from layers.ip6 import IPv6 #,ICMPv6TimeExceeded + +import arch +if arch.GNUPLOT: + Gnuplot=arch.Gnuplot + ############# ## Results ## ############# @@ -14,7 +26,7 @@ class PacketList(BasePacketList): res: the list of packets stats: a list of classes that will appear in the stats (defaults to [TCP,UDP,ICMP])""" if stats is None: - stats = [ TCP,UDP,ICMP ] + stats = conf.stats_classic_protocols self.stats = stats if res is None: res = [] @@ -344,6 +356,7 @@ lfilter: truth function to apply to each packet to decide whether it will be dis return g def _dump_document(self, **kargs): + import pyx d = pyx.document.document() l = len(self.res) for i in range(len(self.res)): @@ -421,7 +434,7 @@ lfilter: truth function to apply to each packet to decide whether it will be dis class Dot11PacketList(PacketList): def __init__(self, res=None, name="Dot11List", stats=None): if stats is None: - stats = [Dot11WEP, Dot11Beacon, UDP, ICMP, TCP] + stats = conf.stats_dot11_protocols PacketList.__init__(self, res, name, stats) def toEthernet(self): @@ -698,6 +711,7 @@ class TracerouteResult(SndRcvList): def world_trace(self): + from modules.geo import locate_ip ips = {} rt = {} ports_done = {} diff --git a/scapy/route.py b/scapy/route.py index 647b5851fb476358cf7db1e5c23e5148063fa981..33cfad1591a009b248b4b2f5b72d136fa6fff4ef 100644 --- a/scapy/route.py +++ b/scapy/route.py @@ -1,8 +1,8 @@ import socket -from arch import read_routes -from utils import atol +from arch import read_routes,get_if_addr +from utils import atol,ltoa,itom from config import conf -from error import warning +from error import Scapy_Exception,warning ############################## ## Routing/Interfaces stuff ## diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py index 03ce3658921fe7faedc164e7c0fe2c6a4d0243b5..3ae2047a8bedf2c6d2e3c548bd1f43eaa9b8a717 100644 --- a/scapy/sendrecv.py +++ b/scapy/sendrecv.py @@ -1,8 +1,11 @@ import cPickle,os,sys,time from select import select from data import * +from arch import * from config import conf - +from packet import Gen +from plist import PacketList,SndRcvList +from utils import warning ################# ## Debug class ## diff --git a/scapy/supersocket.py b/scapy/supersocket.py index f9406018ea21586241e7ab35a2abe33a1fbf7dfd..a5bc6e38f433ac1908f81ba3358463b09b8aee91 100644 --- a/scapy/supersocket.py +++ b/scapy/supersocket.py @@ -3,7 +3,7 @@ from select import select from packet import Raw from data import * from config import conf -from arch import PCAP,DNET +from arch import PCAP,DNET,get_if_list,set_promisc,get_last_packet_timestamp,attach_filter def flush_fd(fd): if type(fd) is not int: diff --git a/scapy/themes.py b/scapy/themes.py index 64035799cb23dab34f06046b9ef30c6d3a1fbaf3..e7676cce1efc6b82083faa6bd1ab7d33fbcf28aa 100644 --- a/scapy/themes.py +++ b/scapy/themes.py @@ -1,4 +1,5 @@ - +from config import conf + ################## ## Color themes ## ################## diff --git a/scapy/utils.py b/scapy/utils.py index a5f6704108237a55513bd8dbdc4360f0f513555f..c4de012a06c7967e6b9159f7f027939c41484211 100644 --- a/scapy/utils.py +++ b/scapy/utils.py @@ -1,8 +1,11 @@ import os,sys,socket,types +from config import conf import random import gzip,zlib,cPickle import re,struct,array from arch import * +from error import log_runtime + ########### ## Tools ## diff --git a/scapy/volatile.py b/scapy/volatile.py index 8a1b831f9b79ccf0a028660baedcf50e637491c8..86ab51999713901596cb180feed9d9a024849ba8 100644 --- a/scapy/volatile.py +++ b/scapy/volatile.py @@ -1,4 +1,6 @@ import random,time +from base_classes import Net +from utils import corrupt_bits,corrupt_bytes #################### ## Random numbers ##