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
Post a Comment