Home | Trees | Indices | Help |
---|
|
1 # 2 # Copyright (c) 2013, EMC Corporation 3 # All rights reserved. 4 # 5 # Redistribution and use in source and binary forms, with or without 6 # modification, are permitted provided that the following conditions are met: 7 # 8 # 1. Redistributions of source code must retain the above copyright notice, 9 # this list of conditions and the following disclaimer. 10 # 2. Redistributions in binary form must reproduce the above copyright notice, 11 # this list of conditions and the following disclaimer in the documentation 12 # and/or other materials provided with the distribution. 13 # 14 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 18 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 # POSSIBILITY OF SUCH DAMAGE. 25 # 26 # Module Name: 27 # 28 # netbios.py 29 # 30 # Abstract: 31 # 32 # NETBios frame support 33 # 34 # Authors: Brian Koropoff (brian.koropoff@emc.com) 35 # 36 37 import core 38 import crypto 39 import smb2 408143 core.Frame.__init__(self, None, context) 44 self.len = None 45 self.conn = context 46 self.transform = None 47 self._smb2_frames = []48 5153 # Frame length (0 for now) 54 len_hole = cur.hole.encode_uint32be(0) 55 base = cur.copy() 56 if self.transform is not None: 57 # performing encryption 58 self.transform.encode(cur) 59 else: 60 for child in self.children: 61 child.encode(cur) 62 63 if self.len is None: 64 self.len = cur - base 65 len_hole(self.len)6668 self.len = cur.decode_uint32be() 69 end = cur + self.len 70 71 with cur.bounded(cur, end): 72 while (cur < end): 73 signature = cur.copy().decode_bytes(4) 74 if (signature.tostring() == '\xfdSMB'): 75 crypto.TransformHeader(self).decode(cur) 76 else: 77 smb2.Smb2(self).decode(cur)7880 self._smb2_frames.append(smb2_frame)
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Thu Jun 29 08:51:27 2017 | http://epydoc.sourceforge.net |