Changeset 892:16b86ce94964
- Timestamp:
- 08/30/08 23:55:26
(4 months ago)
- Author:
- Phil <phil@secdev.org>
- Message:
Added conf.raw_layer
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r891 |
r892 |
|
| 274 | 274 | if conf.debug_dissector: |
|---|
| 275 | 275 | raise |
|---|
| 276 | | pkt = Raw(pkt) |
|---|
| | 276 | pkt = conf.raw_layer(pkt) |
|---|
| 277 | 277 | if lvl == 2: |
|---|
| 278 | 278 | pkt = pkt.payload |
|---|
| … | … | |
| 349 | 349 | if conf.debug_dissector: |
|---|
| 350 | 350 | raise |
|---|
| 351 | | q = Raw(pkt) |
|---|
| | 351 | q = conf.raw_layer(pkt) |
|---|
| 352 | 352 | q.time = get_last_packet_timestamp(self.ins) |
|---|
| 353 | 353 | return q |
|---|
| … | … | |
| 409 | 409 | if conf.debug_dissector: |
|---|
| 410 | 410 | raise |
|---|
| 411 | | pkt = Raw(pkt) |
|---|
| | 411 | pkt = conf.raw_layer(pkt) |
|---|
| 412 | 412 | pkt.time = get_last_packet_timestamp(self.ins) |
|---|
| 413 | 413 | return pkt |
|---|
| r891 |
r892 |
|
| 122 | 122 | if conf.debug_dissector: |
|---|
| 123 | 123 | raise |
|---|
| 124 | | pkt = Raw(pkt) |
|---|
| | 124 | pkt = conf.raw_layer(pkt) |
|---|
| 125 | 125 | pkt.time = ts |
|---|
| 126 | 126 | return pkt |
|---|
| … | … | |
| 234 | 234 | if conf.debug_dissector: |
|---|
| 235 | 235 | raise |
|---|
| 236 | | pkt = Raw(pkt) |
|---|
| | 236 | pkt = conf.raw_layer(pkt) |
|---|
| 237 | 237 | pkt.time = ts |
|---|
| 238 | 238 | return pkt.payload |
|---|
| … | … | |
| 301 | 301 | if conf.debug_dissector: |
|---|
| 302 | 302 | raise |
|---|
| 303 | | pkt = Raw(pkt) |
|---|
| | 303 | pkt = conf.raw_layer(pkt) |
|---|
| 304 | 304 | pkt.time = ts |
|---|
| 305 | 305 | return pkt |
|---|
| r888 |
r892 |
|
| 239 | 239 | promisc = 1 |
|---|
| 240 | 240 | sniff_promisc = 1 |
|---|
| | 241 | raw_layer = None |
|---|
| | 242 | default_l2 = None |
|---|
| 241 | 243 | l2types = Num2Layer() |
|---|
| 242 | 244 | l3types = Num2Layer() |
|---|
| r862 |
r892 |
|
| 106 | 106 | break |
|---|
| 107 | 107 | elif type(payload) is str: |
|---|
| 108 | | self.__dict__["payload"] = Raw(load=payload) |
|---|
| | 108 | self.__dict__["payload"] = conf.raw_layer(load=payload) |
|---|
| 109 | 109 | else: |
|---|
| 110 | 110 | raise TypeError("payload must be either 'Packet' or 'str', not [%s]" % repr(payload)) |
|---|
| … | … | |
| 246 | 246 | return cloneA |
|---|
| 247 | 247 | elif type(other) is str: |
|---|
| 248 | | return self/Raw(load=other) |
|---|
| | 248 | return self/conf.raw_layer(load=other) |
|---|
| 249 | 249 | else: |
|---|
| 250 | 250 | return other.__rdiv__(self) |
|---|
| 251 | 251 | def __rdiv__(self, other): |
|---|
| 252 | 252 | if type(other) is str: |
|---|
| 253 | | return Raw(load=other)/self |
|---|
| | 253 | return conf.raw_layer(load=other)/self |
|---|
| 254 | 254 | else: |
|---|
| 255 | 255 | raise TypeError |
|---|
| … | … | |
| 535 | 535 | if cls is not None: |
|---|
| 536 | 536 | raise |
|---|
| 537 | | p = Raw(s, _internal=1, _underlayer=self) |
|---|
| | 537 | p = conf.raw_layer(s, _internal=1, _underlayer=self) |
|---|
| 538 | 538 | self.add_payload(p) |
|---|
| 539 | 539 | |
|---|
| … | … | |
| 566 | 566 | def default_payload_class(self, payload): |
|---|
| 567 | 567 | """DEV: Returns the default payload class if nothing has been found by the guess_payload_class() method.""" |
|---|
| 568 | | return Raw |
|---|
| | 568 | return conf.raw_layer |
|---|
| 569 | 569 | |
|---|
| 570 | 570 | def hide_defaults(self): |
|---|
| … | … | |
| 1042 | 1042 | return Raw.build(self) |
|---|
| 1043 | 1043 | |
|---|
| | 1044 | conf.raw_layer = Raw |
|---|
| | 1045 | if conf.default_l2 is None: |
|---|
| | 1046 | conf.default_l2 = Raw |
|---|
| | 1047 | |
|---|
| 1044 | 1048 | ################# |
|---|
| 1045 | 1049 | ## Bind layers ## |
|---|
| r862 |
r892 |
|
| 8 | 8 | from error import warning |
|---|
| 9 | 9 | from base_classes import BasePacket,BasePacketList |
|---|
| 10 | | from packet import Padding,Raw |
|---|
| | 10 | from packet import Padding |
|---|
| 11 | 11 | |
|---|
| 12 | 12 | from utils import incremental_label,colgen,do_graph,hexdump,make_table,make_lined_table,make_tex_table |
|---|
| … | … | |
| 192 | 192 | p.sprintf("%.time%"), |
|---|
| 193 | 193 | self._elt2sum(self.res[i])) |
|---|
| 194 | | if p.haslayer(Raw): |
|---|
| 195 | | hexdump(p.getlayer(Raw).load) |
|---|
| | 194 | if p.haslayer(conf.raw_layer): |
|---|
| | 195 | hexdump(p.getlayer(conf.raw_layer).load) |
|---|
| 196 | 196 | |
|---|
| 197 | 197 | def hexdump(self, lfilter=None): |
|---|
| r887 |
r892 |
|
| 6 | 6 | import socket,time,os,struct |
|---|
| 7 | 7 | from select import select |
|---|
| 8 | | from packet import Raw |
|---|
| 9 | 8 | from config import conf |
|---|
| 10 | 9 | from data import * |
|---|
| … | … | |
| 31 | 30 | return self.outs.send(sx) |
|---|
| 32 | 31 | def recv(self, x): |
|---|
| 33 | | return Raw(self.ins.recv(x)) |
|---|
| | 32 | return conf.raw_layer(self.ins.recv(x)) |
|---|
| 34 | 33 | def fileno(self): |
|---|
| 35 | 34 | return self.ins.fileno() |
|---|
| … | … | |
| 73 | 72 | class StreamSocket(SimpleSocket): |
|---|
| 74 | 73 | desc = "transforms a stream socket into a layer 2" |
|---|
| 75 | | def __init__(self, sock, basecls=Raw): |
|---|
| | 74 | def __init__(self, sock, basecls=None): |
|---|
| | 75 | if basecls is None: |
|---|
| | 76 | basecls = conf.raw_layer |
|---|
| 76 | 77 | SimpleSocket.__init__(self, sock) |
|---|
| 77 | 78 | self.basecls = basecls |
|---|
| r884 |
r892 |
|
| 568 | 568 | except KeyError: |
|---|
| 569 | 569 | warning("PcapReader: unknown LL type [%i]/[%#x]. Using Raw packets" % (self.linktype,self.linktype)) |
|---|
| 570 | | import packet |
|---|
| 571 | | self.LLcls = packet.Raw |
|---|
| | 570 | self.LLcls = conf.raw_layer |
|---|
| 572 | 571 | def read_packet(self): |
|---|
| 573 | 572 | rp = RawPcapReader.read_packet(self) |
|---|
| … | … | |
| 583 | 582 | if conf.debug_dissector: |
|---|
| 584 | 583 | raise |
|---|
| 585 | | p = Raw(s) |
|---|
| | 584 | p = conf.raw_layer(s) |
|---|
| 586 | 585 | p.time = sec+0.000001*usec |
|---|
| 587 | 586 | return p |
|---|