Register initialization #96
-
It seems Maat initializes all registers to 0...is this intentional and is there a simple way to blanket initialize all registers to symbolic values instead? I would think that would be the default... |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
We intentionally initialize all registers to concrete values. Using Initializing registers with symbolic variables by default could have some wanted side-effects. For instance, on Is there something that prevents you from manually symbolizing the desired registers? |
Beta Was this translation helpful? Give feedback.
We intentionally initialize all registers to concrete values. Using
0
as a default seems to make a lot of sense.Initializing registers with symbolic variables by default could have some wanted side-effects. For instance, on
X64
, let's assume that we initialize allZMM
registers with symbolic variables. If we then set sub-registers likeXMM
orYMM
to concrete values, the wholeZMM
registers will still hold symbolic expressions (because the upper bits are still symbolic). And then it is likely that the more instructions we run that modify those sub-registers, the more complex the symbolic expressions become. Hence, we would propagate useless symbolic data even though the program is doing p…