hopefully, ROLs will go away as soon as we have (a) "shift-friendly" injections (those with shifts shortcuts defined), and (b) a way to specify "prefer shift-friendly injections" in the macro.
XORs are more tricky, but should be doable via special OBF_XOR macro, doing one of the following:
-- (a&b)|(a&!b) - and variations all the way to NAND-only and NOR-only
-- split in two bitwise (using masks such as 0xAAAA'AAAA and 0x5555'5555 - which are to be obfuscated :-( ), and using addition-with-masking-out again as XOR.
-- all the same but with SSE :-).
Current suggestions:
hopefully, ROLs will go away as soon as we have (a) "shift-friendly" injections (those with shifts shortcuts defined), and (b) a way to specify "prefer shift-friendly injections" in the macro.
XORs are more tricky, but should be doable via special OBF_XOR macro, doing one of the following: -- (a&b)|(a&!b) - and variations all the way to NAND-only and NOR-only -- split in two bitwise (using masks such as 0xAAAA'AAAA and 0x5555'5555 - which are to be obfuscated :-( ), and using addition-with-masking-out again as XOR. -- all the same but with SSE :-).