如何在发布源代码之前隐藏c++函数定义

How to hide a C++ function definition before releasing source code

本文关键字:隐藏 c++ 函数 定义 源代码      更新时间:2023-10-16

我正在构建一个Windows (Visual Studio,基于c++)控制台应用程序,并希望为它发布源代码。然而,我不希望特定函数的定义对它可见。是否有一种方法可以预编译(只是包含定义的文件),这样就没有人可以查看它,但源代码的其余部分是可见的,可以使用"预编译"函数定义构建/运行?

您有两个基本选择:

  • 将该函数转换成编译后的形式

    • 如果您只希望船源代码,您可以编译一个共享库,然后找到或编写一个实用程序来生成C/c++源代码与字符数组包含二进制文件的内容,那么你的程序可以ifstream::write()文件和链接(例如dlopen())动态共享库在运行时(这个你买不多只是航运共享库,除非你有紧迫的理由需要一个"单一"释放,和上述限定目的)
  • 以某种方式混淆源代码,从而删除了通过阅读它可能获得的价值或洞察力

    • 有许多源代码混淆实用程序(具体建议与S.O.无关)

    • 混淆的一种形式是生成c++源代码的汇编语言版本(例如g++ -S, cl /S),这对大多数程序员来说将是冗长的,难以理解和进一步修改

不行。当您发布源代码时,有关函数的信息就在那里。如果你以某种"预编译"的方式释放它,函数仍然被调用,那么信息仍然在那里。