When dealing with very large table lookups, z3.Array is a huge improvement in performance. It would be great if symbolic memory read strategy could be updated to use it, but even simply having the ability to use those primitives with claripy objects (for instance, inside custom user hooks) would be quite beneficial.
Information on Arrays can be found here: https://rise4fun.com/z3/tutorialcontent/guide
Mainly, it comes down to stuff like
table = z3.Array(<args>)
table = z3.Store(table, 0, 1)
#etc
# Lookup becomes
table[sym_var]
When dealing with very large table lookups,
z3.Arrayis a huge improvement in performance. It would be great if symbolic memory read strategy could be updated to use it, but even simply having the ability to use those primitives with claripy objects (for instance, inside custom user hooks) would be quite beneficial.Information on Arrays can be found here: https://rise4fun.com/z3/tutorialcontent/guide
Mainly, it comes down to stuff like