def __init__(self, data=None, isNDR64=False): NDRSTRUCT.__init__(self, data, isNDR64) if data is None: self['Version'] = 1 self['Endianness'] = 0x10 self['CommonHeaderLength'] = 8 self['Filler'] = 0xcccccccc
def __setitem__(self, key, value): if key == 'Data' and isinstance(value, NDR) is False: try: value.encode('utf-16le') except UnicodeDecodeError: import sys value = value.decode(sys.getfilesystemencoding()) self['Length'] = len(value) * 2 self['MaximumLength'] = len(value) * 2 return NDRSTRUCT.__setitem__(self, key, value)
def getData(self, soFar=0): self['PrivateHeader']['ObjectBufferLength'] = len( NDRSTRUCT.getData(self, soFar)) + len( NDRSTRUCT.getDataReferents(self, soFar)) - len( self['CommonHeader']) - len(self['PrivateHeader']) return NDRSTRUCT.getData(self, soFar)
def __init__(self, data=None, isNDR64=False): NDRSTRUCT.__init__(self, data, isNDR64) if data is None: self['Filler'] = 0xcccccccc
def fromString(self, data, soFar=0): # Here we're changing the struct so we can represent a linked list with NDR self.fields['pNextEntInf'] = PREPLENTINFLIST(isNDR64=self._isNDR64) retVal = NDRSTRUCT.fromString(self, data, soFar) return retVal
def getData(self, soFar=0): return NDRSTRUCT.getData(self, soFar)
def fromString(self, data, soFar=0): retVal = NDRSTRUCT.fromString(self, data, soFar) # self.dumpRaw() return retVal
def __setitem__(self, key, value): if key == 'Data' and isinstance(value, NDR) is False: self['Length'] = len(value) self['MaximumLength'] = len(value) return NDRSTRUCT.__setitem__(self, key, value)
def getData(self, soFar=0): self['SubAuthorityCount'] = len(self['SubAuthority']) return NDRSTRUCT.getData(self, soFar)
def __init__(self, data=None, isNDR64=False): NDRSTRUCT.__init__(self, data, isNDR64) self['context_handle_uuid'] = '\x00' * 20