源代码转换以获得一组功能等效的程序

时间:2015-04-23 12:43:44

标签: c++ compiler-optimization

现代编译器使用源代码转换进行优化[1]。还表明,地址空间的动态随机化可用于对抗对程序的攻击[2]。

与试图简单地混淆源代码的混淆器相反,我想创建一组功能等效的源代码,使用C ++进行多样性和安全性的排列。

例如,以下行

int a = 5;
int b = 10;
int c = 15;
int d = a + b + c;

可以转化为

int c = 15;
int a = 5;
int b = 10;
int d = a + b + c;

并且这两个块功能相同。

是否有可用于此目的的现有工具或方法?

[1] https://gcc.gnu.org/wiki/FloatingPointMath#Transformations

[2] https://www.usenix.org/legacy/event/sec03/tech/full_papers/bhatkar/bhatkar.pdf

0 个答案:

没有答案