-
Notifications
You must be signed in to change notification settings - Fork 3
OLLVM
CCint3 edited this page Aug 29, 2019
·
3 revisions
常见的OLLVM混淆推导
-
(x ^ y) + 2 * (x & y)可转化为x + y:-
推导1:设
y != 0 且 x & y = y(x ^ y)转化为(x - y)2 * (x & y)转化为2y(x - y) + 2y转化为x + y -
推导2:设
y = 0(x ^ y)转化为(x + y)2 * (x & y)转化为0(x + y) + 0转化为x + y
-
-
2 * (x | y) - (x ^ y)可转化为x + y:-
推导1:设
y = 1 且 x & y = 1,得2 * (x | 1) - (x ^ 1)表达式1:
2 * (x | 1)转化为2x表达式2:
(x ^ 1)转化为(x - 1)结果:
2x - (x - 1)转化为2x - x + 1转化为x + 1 -
推导2:设
y = 0,得2 * (x | 0) - (x ^ 0)表达式1:
2 * (x | y)转化为2x表达式2:
(x ^ y)转化为x结果:
2x - x转化为x
-
-
(x | y) + ((x ^ ~y) & x)可转化为x + y:
-
~x & y | x & ~y可转化为x ^ y
工欲善其事必先利其器;
纸上得来终觉浅,须知此事要躬行;
智者不惑行者无疆;大将无能累死三军;
由简入奢易,由奢入简难;这句话背后藏着的是我们可以戒掉痛苦,但是戒不掉快乐;