【发布时间】:2015-11-09 12:07:21
【问题描述】:
假设我为每个原始函数设置了 10 个更改后的函数,它们都做同样的事情,只是执行和数学的过程不同。每次应该在代码中使用原始函数时,我想从 10 个更改的函数中调用一个随机函数,而不是原始函数。我怎样才能做到这一点并避免编译其他 9 个更改过的函数,这些函数不是随机选择的并且不会被使用?
这是为每个具有唯一签名的接收器分发一个“不同”的构建。我能想到的唯一可能的方法是为每个原始函数创建一个文件夹,该文件夹包含 10 个单独的包含文件,用于每个更改的函数。这有点乱,但这是我能想到的唯一方法。
如果有更简单的方法,我想实现什么,请告诉我。例如,在编译时随机将垃圾代码添加到原始函数中——这会更好,因为它是动态的。我只是无法想象如何做到这一点。
这是一些伪代码:http://pastebin.com/v7Hv53nS
【问题讨论】:
-
由于没有编译时随机数生成工具,我想最简单的方法是在你的 Makefile 中生成一个随机索引,将它作为宏传递给编译器,并在源代码中使用它代码将标记调度到一组重载函数中。
-
您希望实现的选择是随机的,还是每个签名都不同?
-
每个签名不同@Beta