示例#1
0
 def testDefaultValueWhenNotMutated(self):
     '''
     Check that the default value, before mutation, is as the expected data
     '''
     expected_data = 'Th3 L33ter '
     uut = Template(
         name='uut',
         fields=[
             String('Th'),
             BitField(value=3, length=20, encoder=ENC_INT_DEC),
             Static(' '),
             Container(
                 name='leeter ',
                 fields=[
                     Dynamic(key='hmm', default_value='L3'),
                     String('\xde\xd7\xab', encoder=ENC_STR_BASE64_NO_NL),  # 3ter
                     RandomBytes(' ', min_length=1, max_length=100)
                 ])
         ])
     self.assertEqual(uut.render().tobytes(), expected_data)
     uut.mutate()
     uut.reset()
     self.assertEqual(uut.render().tobytes(), expected_data)
示例#2
0
 def testMultipleDependenciesDefaultValue(self):
     expected_data = (
         '\x00\x00\x00\x74' +
         'HAMBURGER' +
         '\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa' +
         '\xf3\xfe\xa2g8\xd6\xc1\xc2K\xef\x89\xe3\xd7\xcfh\xbaH\xf8\x83\x08JS\x82\xa5\x86f\x82\x9b\x18\xc5r\xa9'
     )
     uut = Template(
         name='uut',
         fields=[
             SizeInBytes(sized_field='uut', length=32, name='size'),
             Pad(
                 name='content',
                 fields=[
                     String(value='HAMBURGER'),
                 ],
                 pad_length=640,
                 pad_data='\xaa'),
             Sha256(depends_on='content', name='hash'),
         ])
     self.assertEqual(uut.render().tobytes(), expected_data)
     uut.mutate()
     uut.reset()
     self.assertEqual(uut.render().tobytes(), expected_data)
示例#3
0
 def testMultipleDependenciesDefaultValue(self):
     expected_data = (
         '\x00\x00\x00\x74' + 'HAMBURGER' +
         '\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa'
         +
         '\xf3\xfe\xa2g8\xd6\xc1\xc2K\xef\x89\xe3\xd7\xcfh\xbaH\xf8\x83\x08JS\x82\xa5\x86f\x82\x9b\x18\xc5r\xa9'
     )
     uut = Template(name='uut',
                    fields=[
                        SizeInBytes(sized_field='uut',
                                    length=32,
                                    name='size'),
                        Pad(name='content',
                            fields=[
                                String(value='HAMBURGER'),
                            ],
                            pad_length=640,
                            pad_data='\xaa'),
                        Sha256(depends_on='content', name='hash'),
                    ])
     self.assertEqual(uut.render().tobytes(), expected_data)
     uut.mutate()
     uut.reset()
     self.assertEqual(uut.render().tobytes(), expected_data)
示例#4
0
 def testDefaultValueWhenNotMutated(self):
     '''
     Check that the default value, before mutation, is as the expected data
     '''
     expected_data = 'Th3 L33ter '
     uut = Template(
         name='uut',
         fields=[
             String('Th'),
             BitField(value=3, length=20, encoder=ENC_INT_DEC),
             Static(' '),
             Container(
                 name='leeter ',
                 fields=[
                     Dynamic(key='hmm', default_value='L3'),
                     String('\xde\xd7\xab',
                            encoder=ENC_STR_BASE64_NO_NL),  # 3ter
                     RandomBytes(' ', min_length=1, max_length=100)
                 ])
         ])
     self.assertEqual(uut.render().tobytes(), expected_data)
     uut.mutate()
     uut.reset()
     self.assertEqual(uut.render().tobytes(), expected_data)