c++ - 防止反向工程 C++ 二进制文件

标签 c++ reverse-engineering

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

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

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

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

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

最佳答案

如果我没听错,你说的是 obfuscation .

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

关于c++ - 防止反向工程 C++ 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12382071/

相关文章:

java - Android 应用程序中 key 的反黑客解决方案?

php - php-cpp 是否适用于 C 库?

c++ - 使用指针设置变量

c++ - 在容器中存储常量字符串文字

java - 在java中传递泛型类类型

c# - 无法解密这些字符串

windows - 为什么段虚拟地址需要连续?

C++ 将类成员函数传递给其他类

java - 如何从 Java 代码生成可用于创建新序列图的类图

algorithm - 如何对算法进行逆向工程?