def test_utf_16_le_null_terminated_3(self): ''' null terminated ''' # in putty.7124.dump vaddr = 0x657488 size = 88 st = structure.makeStructure(self.putty7124, vaddr, size) self.dsa.analyze_fields(st) #print repr(st.bytes) log.debug(st.toString()) fields = st.getFields() self.assertEquals( len(fields), 2) # should be 3 Lt0? self.assertEquals( fields[0].typename, fieldtypes.FieldType.STRING16) self.assertTrue( fields[0].isString())
def test_ascii_null_terminated_2(self): ''' null terminated ''' # struct_64f328 in putty.7124.dump vaddr = 0x64f328 size = 72 st = structure.makeStructure(self.putty7124, vaddr, size) self.dsa.analyze_fields(st) #print repr(st.bytes) log.debug(st.toString()) fields = st.getFields() self.assertEquals( len(fields), 5) self.assertEquals( fields[3].typename, fieldtypes.FieldType.STRINGNULL) self.assertTrue( fields[3].isString())
def test_utf_16_le_non_null_terminated(self): ''' non-null terminated ''' # struct_691ed8 in putty.7124.dump vaddr = 0x691ed8 size = 256 st = structure.makeStructure(self.putty7124, vaddr, size) self.dsa.analyze_fields(st) #print repr(st.bytes) log.debug(st.toString()) fields = st.getFields() self.assertEquals( len(fields), 2) self.assertEquals( fields[1].typename, fieldtypes.FieldType.STRING16) self.assertTrue( fields[1].isString())
def test_big_block_2(self): # in putty.7124.dump # its garbage anyway vaddr = 0x675b30 size = 8184 st = structure.makeStructure(self.putty7124, vaddr, size) self.dsa.analyze_fields(st) #print repr(st.bytes) log.debug(st.toString()) fields = st.getFields() self.assertLess( len(fields), 890) #self.assertEquals( fields[35].typename, fieldtypes.FieldType.STRINGNULL) #self.assertTrue( fields[35].isString()) fields = [f for f in st.getFields() if f.isString()]
def test_uuid(self): ''' null terminated ''' # in putty.7124.dump vaddr = 0x63aa68 size = 120 st = structure.makeStructure(self.putty7124, vaddr, size) self.dsa.analyze_fields(st) #print repr(st.bytes) log.debug(st.toString()) fields = st.getFields() self.assertEquals( len(fields), 3) self.assertEquals( fields[1].typename, fieldtypes.FieldType.STRING16) self.assertTrue( fields[1].isString()) pass
def test_utf_16_le_null_terminated(self): # struct_682638 in putty.7124.dump vaddr = 0x682638 size = 184 st = structure.makeStructure(self.putty7124, vaddr, size) self.dsa.analyze_fields(st) #print repr(st.bytes) log.debug(st.toString()) fields = st.getFields() self.assertEquals( len(fields), 5) # TODO should be 6 fields lllttp self.assertEquals( fields[2].typename, fieldtypes.FieldType.STRING16) self.assertTrue( fields[2].isString()) # TODO fields[3] should start at offset 12, not 10. self.assertEquals( fields[3].typename, fieldtypes.FieldType.STRING16) self.assertTrue( fields[3].isString())
def test_big_block(self): ''' null terminated ''' # in putty.7124.dump vaddr = 0x63d4c8 #+ 1968 size = 4088 #128 st = structure.makeStructure(self.putty7124, vaddr, size) self.dsa.analyze_fields(st) #print repr(st.bytes) log.debug(st.toString()) fields = st.getFields() self.assertLess( len(fields), 879) #self.assertEquals( fields[35].typename, fieldtypes.FieldType.STRINGNULL) #self.assertTrue( fields[35].isString()) strfields = [f for f in st.getFields() if f.isString()] #for f in strfields: # print f.toString(), self.assertGreater( len(strfields), 30 )