python - Z3 - How to set a byte constraint on a BitVec -


i'm trying set list of possible allowed bytes in bitvec i'm not sure i'm setting constraints in right way.

e.g:

let have 32 bit bv called bv , solver() called s:

s = solver() bv = bitvec(8 * 4) 

i want each byte can either 0x2 or 0x34 or 0xff used extract():

i = 0 while (i < 8 * 4):     s.add(extract(i + 7, i, bv) == 0x2)     s.add(extract(i + 7, i, bv) == 0x34)     s.add(extract(i + 7, i, bv) == 0xff)      += 8 

sadly, s.check() returns unsat.

i think not correct way express bytes may 0x2 or 0x34 or 0xff. did write constraints in right way or thought process plain wrong?

i = 0 while (i < 8 * 4):    s.add(or(extract(i + 7, i, bv) == 0x2),              extract(i + 7, i, bv) == 0x34),             extract(i + 7, i, bv) == 0xff))  += 8 

Comments

Popular posts from this blog

qt - QML MouseArea onWheel event not working properly when inside QML Scrollview -

java - is not an enclosing class / new Intent Cannot Resolve Constructor -

python - Error importing VideoFileClip from moviepy : AttributeError: 'PermissionError' object has no attribute 'message' -