【发布时间】:2015-06-15 17:24:49
【问题描述】:
我使用 gcc(在 Ubuntu 上)来编译一个 c 程序,该程序的字符串值很少,我不想让最终用户知道。就像身份验证中使用的字符串、密码文件路径/密码等一样,但是当我编译程序时,目标文件具有可读(文本)格式的这些字符串值。还有其他机器可读的字符,但这些字符串也存在于文件中。这是预期的吗?有没有办法告诉编译器不要将值打印为纯文本。我想在程序中加密字符串,但这看起来像是过度工程。
【问题讨论】:
-
字符串字面量等常量值通常存储在可执行代码文件的字面量区域中。在源代码中使用加密字符串并将加密例程放入代码中可能是解决问题的最严格的方法。
-
gcc 不能为你做。在你的程序中加密它并不过分——这就是这样做的方法。
-
我将加密字符串,可能会进一步限制对可执行文件的访问.. 感谢 cmets 的帮助..
标签: c string security object gcc