2

我已经阅读了几篇关于该主题的文章,实现了大部分描述的技术。但我也想在二进制文件中添加一些额外的未引用/从未使用过的代码。理想情况下,我希望能够通过工具将此代码添加到构建的二进制文件中。有这样的工具吗?关于如何构建这样一个工具的任何想法?或者如何生成一些从未使用过的代码并将其添加到我的 C++ 程序中?我应该把它放在哪里?

在对 Skype 内部的分析中,我读到他们尽可能地弄乱了代码。实现它的一种方法是动态计算每个调用:

if ( sin(a) == 42 ) {
   do_dummy_stuff () ;
}

我应该进入虚拟功能吗?或者虚拟函数是从未使用过的代码?

更新:我想将从未使用过的代码添加到二进制文件的原因是因为我们发布了许多电子书。我希望每个的二进制文件都有一点不同,所以如果一个被泄露,其他的不会(至少不是马上)。

4

2 回答 2

4

如果我没听错,你说的是混淆

Stackoverflow 上的这个问题涵盖了该主题。有很多软件会混淆 C++ 代码,快速谷歌搜索会显示很多这样的应用程序,例如thisthis

于 2012-09-12T06:12:57.340 回答
3

有这样的工具吗?

就在这里。它被称为具有适当参数的编译器,并添加一个链接器。添加到此组合中,您将获得一个合适的库。

严肃地说,没有办法防止逆向工程。你只能让饼干变得更难(或更烦人)。你可以看看这篇文章(spyro 的开发者尝试了各种盗版保护)

于 2012-09-12T06:12:48.543 回答