コード例 #1
0
ファイル: eth_general.py プロジェクト: vicsanjinez/manticore
 def test_simple_types_ints_symbolic(self):
     cs = ConstraintSet()
     x = cs.new_bitvec(256, name="x")
     y = cs.new_bitvec(256, name="y")
     # Something is terribly wrong x,y = 10,20
     my_ser = ABI.serialize('(uint,uint)', x, y)
     x_, y_ = ABI.deserialize('(uint,uint)', my_ser)
     self.assertTrue(solver.must_be_true(cs, x == x_))
     self.assertTrue(solver.must_be_true(cs, y == y_))
コード例 #2
0
ファイル: eth_general.py プロジェクト: YannickXiong/manticore
    def test_serialize_bytes_symbolic(self):
        cs = ConstraintSet()
        buf = cs.new_array(index_max=17)
        ret = ABI.serialize('bytes', buf)

        # does the offset field look right?
        self.assertTrue(solver.must_be_true(cs, ret[0:32] == bytearray(b'\x00'*31 + b'\x20')))

        # does the size field look right?
        self.assertTrue(solver.must_be_true(cs, ret[32:64] == bytearray(b'\x00'*31 + b'\x11')))

        # does the data field look right?
        self.assertTrue(solver.must_be_true(cs, ret[64:64+32] == buf + bytearray(b'\x00'*15)))
コード例 #3
0
ファイル: eth_general.py プロジェクト: vicsanjinez/manticore
 def test_simple_types_ints_symbolic1(self):
     cs = ConstraintSet()
     x = cs.new_bitvec(256, name="x")
     # Something is terribly wrong x,y = 10,20
     my_ser = ABI.serialize('uint', x)
     self.assertTrue(
         solver.must_be_true(cs,
                             my_ser[0] == operators.EXTRACT(x, 256 - 8, 8)))