Replace integer arithmetic with more complex expressions. For example, the following identities can be used to encode integer addition:
x + y = x - ¬ y - 1 = (x ⊕ y) + 2·(x ∧ y) = (x ∨ y) + (x ∧ y) = 2·(x ∨ y) - (x ⊕ y)
For example, Tigress might replace
z = x + y + wwith
z = (((x ^ y) + ((x & y) << 1)) | w) + (((x ^ y) + ((x & y) << 1)) & w);
Diversity
For each operator, there are many possible encodings, and at transformation time, these are selected from randomly.
Options
Option | Arguments | Description |
---|---|---|
--Transform | EncodeArithmetic | Replace integer arithmetic with more complex expressions. |
--EncodeArithmeitKinds | integer | Specify the types to encode. Currently, only integer is available. Default=integer.
|