我试图避免文字字符串出现在可执行文件中。我想将一个加密的字符串放在可执行文件中,然后在运行时解密并使用它。我读了一点如何隐藏二进制代码中的字符串?和http://bytes.com/topic/c/answers/222096-hiding-string-compiled-code,但这并不是我想要的。
可以使用宏来完成吗?例如,我可以使用声明一个宽字符字符串
wchar_t str[] = L"value"
或者
wchar_t *str = L"value"
神奇L
的会将字符转换为宽字符。是否有可能创造另一个L
像这样的魔法来制作加密字符串?例如:
ENC"value"
目前我将已经加密的字符串定义为宏:
#define SAMPLE_STRING "ftnurd eru etrth" /*Random chars for imitating encryption*/
并将它们传递给一个正常的函数,比如
char *decstr(char *data)
有没有更简单的方法来做到这一点?
我正在使用带有 Visual C++ 2008 Express 的 Windows XP SP3。