def __init__(self, data=None, extradata=None): Struct.__init__(self, data) if data is not None: Struct.__init__(self, data) pos = self.calcsize() self['Sid'] = DCERPCSid(data=extradata)
def __init__(self, data=None, Name='', Sid=''): Struct.__init__(self, data) if data is None: if Name is not None: self['NameLength'] = len(Name) self['NameSize'] = len(Name) self['NamePtr'] = 0x2000040 self['NameString'] = DCERPCString( string=Name.encode('UTF-16LE')) if Sid is not None: self['SidPtr'] = 0x2000050 self['Sid'] = DCERPCSid(Sid=Sid)
def __init__(self, data=None, PolicyHandle='\x00' * 20, Sids=[], LsaLookupLevel=LSA_LOOKUP_NAMES_ALL, is_unicode=True): Struct.__init__(self, data) if data is not None: self['PolicyHandle'] = data[:16] ### TODO else: self['PolicyHandle'] = PolicyHandle self['NumberOfSids'] = len(Sids) self['Sids'] = [DCERPCSid(Sid=x) for x in Sids] self['LsaLookupLevel'] = LsaLookupLevel self['Count'] = len(Sids)
def __init__(self, data=None, Sids=[]): Struct.__init__(self, data) if data is not None: pos1 = self.calcsize() objsize = LsaTranslatedSidEx2().calcsize() pos2 = pos1 + objsize * self['Count'] self['Sids'] = [] for i in xrange(self['Count']): Sid = LsaTranslatedSidEx2(data=data[pos1:], extradata=data[pos2:]) self['Sids'].append(Sid) pos1 += Sid.calcsize() sid_str = Sid.get_sid()['Sid'] pos2 += len(DCERPCSid(Sid=sid_str).pack()) else: self['Count'] = len(Sids) self['SidsPtr'] = 0x020010 self['MaxCount'] = len(Sids) self['Sids'] = Sids
def unpack_sid(self, data): self['Sid'] = DCERPCSid(data=data)