Datei Inhalt (XML) als String statisch im Programm linken



  • Hallo Leute, frohe Weihnachten

    ich habe eine XML Date, deren Inhalt von Dritten nicht einsehbar sein soll. Nun habe ich mir überlegt, den Inhalt als "Variable" oder Irgendwie als String im Programm mit zu compilieren.

    Ideal vll. auch als Verschlüsselter String oder ByteCode!?

    Danke für Euere Tipps:)



  • Hast du denn wirklich ein C++/CLI Projekt oder ein natives C++ Projekt (weil du einige deiner anderen Beiträge schon in falschen Unterforen gepostet hattest)?

    Generelles Stichwort: Ressourcen (resources)



  • @SoIntMan sagte in Datei Inhalt (XML) als String statisch im Programm linken:

    deren Inhalt von Dritten nicht einsehbar sein soll

    was bedeutet das?



  • @SoIntMan

    Also grundsätzlich ist es nicht möglich Daten die mit deinem Programm mitkommen so zu verpacken/verstecken dass es unmöglich ist sie auszulesen. Du kannst es aber natürlich schwerer machen. Verschlüsseln wäre eine Möglichkeit. Dadurch reicht es dann nicht das Programm einfach in einem Texteditor aufzumachen. Um dennoch an die Daten zu kommen müsste man zumindest ein Speicherabbild des laufenden Programms machen oder mit nem Debugger oder sonstigen Reverse-Engineering Tool draufhauen. Was einige Kenntnisse erfordert. Wirklich sicher ist es aber nicht. Wenn dir das reicht ist es OK.

    In dem Fall kannst du die Daten einfach mit dem Algorithmus deiner Wahl verschlüsseln und dann Key sowie Daten z.B. einfach in einem Char-Array ablegen. Dazu gibt es fertige Programme die Binärfiles in C Source verwandeln der ein statisches Char-Array mit dem Inhalt des Binärfiles initialisiert.
    Den Output so eines Programms musst du dann nur noch in deinem Programm z.B. per #include einbinden und schwupps hast du die verschlüsselten Daten reingelinkt (eigentlich reinkompiliert). Dann bindest du noch irgend eine Verschlüsselungs-Library ein mit der du das ganze entschlüsselst und schon ist Bob dein Onkel.



  • Husti schreibt immer so furchtbar viel ... Im Endeffekt habe ich obige Frage gestellt, weil die Daten sowieso irgendwann ungeschützt im Speicher stehen.



  • Guten Morgen,

    @Th69 Danke für den Hinweis, es ist ein reines C++ Projekt:)
    @Swordfish Ne rein Firm politische Sache, ich habe lediglich die Anweisung dass die Datei so nicht rausgegeben werden darf. 🙂

    @hustbaer Ja genau , dass habe ich gemeint . d.h. die XML Datei verschlüsselt als Char-Array in einem C Code File, welche mit compiliert wird!? Das lag mir im Sinne, aber ich habe kein Tool gefunden, welches mir eine Datei in eine C-Source verwandet:( Ich verwendr Qt , evtl. kann hat das Framework Verschlüsslungsalgorithmen.



  • @SoIntMan sagte in Datei Inhalt (XML) als String statisch im Programm linken:

    aber ich habe kein Tool gefunden, welches mir eine Datei in eine C-Source verwandet:

    xxd -i
    https://linux.die.net/man/1/xxd
    ☺



  • Qt hat auch ein ressourcen system (hint qrc). Und Qt hat auch support für Verschlüsselungsalgorithmen.
    Nur musst du die Datei vorher verschlüsseln, bevor du diese in das qt ressourcen system einbindest.
    Und auch um die Entschlüsselung musst du dich selbst kümmern.

    Ich hoffe der code, der mit dem XML-Content gefüttert wird, erwartet nicht einen pfad zu einer Datei zu bekommen. Weil sonst wäre das ganze vorgehen umsonst, denn in dieser situation müsstet du die verschlüsselte Datei unverschlüsselt im Dateisystem ablegen (wenn auch nur temporär).
    Und dann ist der content prinzipiell für jeden, der das Programm benutzt, erreichbar



  • Guten Morgen, und frohes Neues,

    ne der Code erwartet "theoretisch" nur Content, werde ich aber nochmal prüfen müsssen,

    Danke für euere Feedback, ich schaumal wie weit ich komme und melde mich ggf. 🙂

    Grüße:)