2017-07-13 1 views
-2

Ich baue ein Programm, das nach dem Zufallsprinzip Text aus einer Datei auswählen wird.Wie kann ich Ressourcen in meine ausführbare Datei einbetten, um sie vor einem Benutzer zu verbergen?

Was kann ich verwenden, um die Datei mit dem Text des Benutzers auszublenden?

Ist es möglich, diesen Text in die ausführbare Datei zu integrieren?

+1

Bitte Beispiel-Code zur Verfügung stellen Sie schrieb und warum arbeitet es nicht. Zu Ihrer Frage würde ich sagen, dass Sie in der Tat eine ganze Textdatei in Ihr Programm aufnehmen können. – Fabien

+1

Off-Thema. Sie können betriebssystemspezifische Tricks (Dateiberechtigung, setuid, ...) verwenden. Sie könnten den Text in eine SQLite-Datenbank einfügen. Sie könnten es verschlüsseln, komprimieren oder irgendwie verschleiern. –

+1

Selbst wenn Sie es in der ausführbaren Datei erstellen würden, wäre es immer noch lesbar. Öffnen Sie eine .exe, die Sie mit Notepad haben. Sie können alle Zeichenfolgen sehen, die sie leicht haben. – litelite

Antwort

0

Ist es möglich, diesen Text in die ausführbare Datei zu integrieren?

Eine Möglichkeit, eine Textdatei enthalten, wie ein inlined Ressource ist Ihre Text-Datei ein wenig zu modifizieren und verwenden, um eine #include Aussage:

Format der Textdatei:

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

Modifikation wahrscheinlich könnte Sie können auch ein kleines Werkzeug verwenden, das den Text umgibt, den Sie in einem Vorverarbeitungsschritt für die Kompilierung in Ihr Programm einbinden möchten:

Bei einem GNU makefil e zum Beispiel:

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

Und es mit einem std::istream wie Sie von einem extern geöffneten Datei tun würde verwenden:

MySource.cpp: MySource.h MyTextFile.inc 

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

In Ihrem Programm können Sie dann verwenden.

Sie können mehr über Raw-String-Literale here lesen.

0

Eine gute Möglichkeit, eine Asset-Datei in Ihre C++ - Programmdatei zu erstellen, besteht darin, sie in eine Header-Datei zu konvertieren, die Sie in Ihren Quellcode einfügen können.

Diese Frage hat eine Antwort, die zeigt, wie Sie mit dem Linux-Befehl xxd jede beliebige Datei in eine Header-Datei konvertieren können.

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

Wenn Sie sich entscheiden, dass Sie die entschlossenen Benutzer sehen den Text durch die Verwendung von Tool wie Hex-Editoren zu verhindern, müssen die den Text innerhalb der ausführbaren Datei anzuzeigen konnten, können Sie komprimieren und/oder die Datei verschlüsseln und Entschlüsseln Sie es zur Laufzeit.

hoffe, das hilft,

James

Verwandte Themen