1

我必须交付一个小型 C++ 软件。我想用一些实现(我使用过表达式模板)来掩盖头文件,以使最终用户难以辨认,因此他们无法修改它们。我不能将代码包含在静态或动态库中。有什么方法可以屏蔽头文件的内容吗?

谢谢!

4

2 回答 2

3

如果这是一个只有头文件的实现,除了将变量和受保护/私有成员函数重命名为没有意义的名称之外,你无能为力(所以一切都称为 xx、yy、aa、bb、ll l1、I , 等等)

如果您的功能作为源代码是独一无二且非常有价值的,那么有人会努力“不混淆它”。如果我可以花半个小时左右的时间对一些 IOCCC 代码进行非混淆处理并使其具有合理的可读性和可理解性,我不确定您将使用什么技术使其更难(当然,代码可能更大,所以它会需要更长的时间,但这几乎可以肯定是毫无意义的)。

于 2013-05-31T10:18:42.093 回答
1

我想用一些实现(我使用过表达式模板)来掩盖头文件,以使最终用户难以辨认,因此他们无法修改它们。

为什么用户不修改代码对您很重要?

我不能将代码包含在静态或动态库中。

你能详细说明原因吗?

有什么方法可以屏蔽头文件的内容吗?

并不真地。头文件以文本形式包含在编译中。

您可以混淆代码,使其没有任何语义意义(想到用不同数量的下划线替换每个函数名称),但如果他们更改它对您的客户很重要,他们仍然可以这样做(只是花更多的精力来理解你做了什么)。

于 2013-05-31T10:52:28.107 回答