2017-07-13 86 views
-2

我正在構建一個程序,它將從文件中隨機選擇文本。如何在我的可執行文件中嵌入資源以將其從用戶中隱藏起來?

我可以用什麼來隱藏文件與用戶的文本?

是否有可能在本文中構建到可執行文件?

+1

請,提供例如代碼,你寫的,爲什麼它不工作。至於你的問題,我會說你確實可以在程序中包含整個文本文件。 – Fabien

+1

偏離主題。您可能會使用特定於操作系統的技巧(文件權限,setuid,...)。你可以把文本放在一些sqlite數據庫中。你可以加密它,壓縮它,或以某種方式混淆它。 –

+1

即使你要在可執行文件中構建它,它仍然是可讀的。用記事本打開任何.exe文件。你可以看到他們所有的字符串很容易 – litelite

回答

0

是否可以在本文中構建可執行文件?

的一種方法,包括一個文本文件作爲一個內聯的資源來修改你的文本文件有點和使用#include聲明:

R"rawtext(
Put all of the text input you want here: 
... 
)rawtext" 

修改也許可以:

文本文件格式也可以使用一個小工具來完成,這個小工具只是圍繞你想要在你的程序中進行預編譯的文本進行編譯:

在一個GNU makefil E對於例如:

MySource.cpp: MySource.h MyTextFile.inc 

MyTextFile.inc: MyTextFile.txt 
    sed -e "s/\(.*\)/R'rawtext(\1)rawtext'/" < $< > [email protected] 

在你的程序,你可以使用則:

std::istrstream input(
#include "MyTextFile.inc" 
); 

並使用其與std::istream像你這樣從外部打開的文件做。

你可以閱讀更多關於原始字符串文字here

0

將一個資產文件構建到您的C++可執行文件中的一個好方法是將其轉換爲頭文件,您可以將其包含到源代碼中。

此問題的答案顯示瞭如何使用linux命令xxd將任意任意文件轉換爲頭文件。

script/tool to convert file to C/C++ source code array

如果你決定,你需要防止更堅定了用戶看到通過使用諸如十六進制編輯器工具,可以查看可執行文件中的文本的文本,可以壓縮和/或加密的文件和在運行時解密它。

希望這有助於

詹姆斯

相關問題