trailofbits / manticore

Symbolic execution tool
https://blog.trailofbits.com/2017/04/27/manticore-symbolic-execution-for-humans/
GNU Affero General Public License v3.0
3.69k stars 472 forks source link

Make smtlib.expressions.ArrayProxy more friendly #508

Open feliam opened 7 years ago

feliam commented 7 years ago

Research a way for enabling ArrayProxy concatenation. a = state.new_array() b = state.new_array()

assert isinstance( a + "concrete_value" + b , Array)

offlinemark commented 6 years ago

this works. can we close this now @feliam ?


In [12]: cs = ConstraintSet()

In [13]: a = cs.new_array(index_max=4)

In [14]: b = cs.new_array(index_max=4)

In [15]: isinstance(a + bytearray('conc') + b, Array)
Out[15]: True
offlinemark commented 6 years ago

(from felipe:) before we close this, we should add a unit test to test that modifying an Array slice does not affect the original Array.