angr / claripy

An abstraction layer for constraint solvers.
BSD 2-Clause "Simplified" License
284 stars 93 forks source link

Remove length information from string #503

Closed twizmwazin closed 1 week ago

twizmwazin commented 2 weeks ago

Description

Strings in claripy currently extend from Bits, and act on the surface as if their length is fixed. This isn't actually the case though, any op that goes through Z3 for instance loses this length information, as Z3 Strings do not have a length. Further, the primary use case for Strings, the Soot Engine in angr seemingly doesn't really care about the length of strings, it just hardcodes some high enough maximum values that it doesn't really matter. Let's remove it to be consistent with Z3 and other SMT solvers.

Alternatives

No response

Additional context

No response