保护生成的源文件

Posted

技术标签:

【中文标题】保护生成的源文件【英文标题】:Protection of generated source files 【发布时间】:2016-02-01 11:12:30 【问题描述】:

我在一家根据我们语言的不同输入文件编写 C++ 源文件生成器的公司工作。

然后使用标准 C++ 编译器(MSVC cl、gcc)将这些文件编译到可执行文件中,并在编译后将它们删除。

这些生成的文件取决于包含文件的数量,并与包含静态代码的静态库链接(不依赖于源文件)。这些文件存在于我们产品的安装目录中。

是否有任何解决方案/程序/技术可用于从用户文件系统中隐藏这些生成的文件,但让它们对 C++ 编译器可见?

我正在寻找跨平台解决方案(Linux、Windows),比如用户空间文件系统。

感谢您的任何建议。

【问题讨论】:

为什么要这样做?这只会给整个过程和设置增加巨大的不透明性。谁应该从中受益? 静态库不包含源代码,它们肯定包含目标代码? 看起来是 XY 问题:meta.stackexchange.com/questions/66377/what-is-the-xy-problem @arkascha 其目的是保护生成文件中的知识,因此客户将收到他支付的费用,但竞争对手无法轻易获得知识。 @RichardCritten 部分是 XY,因为我试图尽可能地描述用法。但是还没有找到任何解决方案,因此保护这些源文件的任何其他方式都会很棒 【参考方案1】:

使用 gcc 可以直接从 stdin:How to compile code from stdin? 编译,只需要提供输入语言选项(通常从文件名中检测到)。

虽然不确定 MSVC。

【讨论】:

是的,这可能有效,但我们必须实现源文件的 C 预处理器来保护我们的头文件。但是这个解决方案只会解决源文件的保护问题。

以上是关于保护生成的源文件的主要内容,如果未能解决你的问题,请参考以下文章

Python生成pyd文件

如何创建受密码保护的 pdf 文件

jdk的keytool生成jks及获取jks的信息

Nginx创建password保护文件夹

VBA密码保护Excel工作簿而不保存

在bash中从一个文件中读取文件名称,并检查当前目录是否保护这些文件