【发布时间】:2015-08-31 11:53:47
【问题描述】:
有没有办法从宏修改 C++ 中的字符串文字?
原因是混淆了代码,特别是 2 个互斥愿望:
- 我想在我的源代码中看到文字,比如“password123”。
- 我希望它们在编译之前以某种方式被破坏,以避免将它们包含在二进制文件中。
我知道像 XOR 或移位这样的原始修改不足以进行专业分析,但它们对我来说已经足够了。
【问题讨论】:
-
我不知道使用 c++ 预处理器进行此类操作。
-
我可以看到,如果字符串的格式为
(p,a,s,s,w,o,r,d,1,2,3)或(p)(a)(s)(s)(w)(o)(r)(d)(1)(2)(3)或其他分隔字符的格式。您将通过对结果进行字符串化来完成。 -
除非您将密码分解为单独的字符,否则如果在源代码中以字符串形式写入它们将构成预处理令牌,在预处理期间不会分开。
-
您可以通过一些模板元编程来实现这样的转换,类似于用于类型安全 printf 的转换。我会尝试寻找合适的链接。
-
This 问题类似,但这不是重复的,所以我重新打开了它。