Strings im Programm codieren



  • Nexus schrieb:

    Nur werden die Original-Stringliterale so auch weiterhin im Programm gespeichert sein. Man müsste sie schon fast in anderem Format eingeben, z.B. als einzelne Zeichen.

    Ob sich das lohnt, ist wieder eine andere Frage...

    xor-verschlüsselt in die *.exe schreiben geht zB. so:

    #include <iostream>
    int main()
    {
    	//char text[6+1] = "geheim";
    	//const char schluessel = 117;//255 Schluessel moeglich 
    	const char X = 117;
    	char text[6+1] = {'g'^X,'e'^X,'h'^X,'e'^X,'i'^X,'m'^X,'\0'};
    
    	for (int i = 0; i < 6; i++)
    		text[i]	^= X;	//= xor-Decodierung
    
    	std::cout << text << std::endl;
    }
    

    😉



  • bist ja ein richtiger hacker was egon



  • schlechgelaunt schrieb:

    bist ja ein richtiger hacker was egon

    Hacken müssen nur die, die etwas nicht selbst prorammieren können - oder?
    😉



  • Weil vorallem Bitmanipulation was mit hacken zu tun hat 😃



  • Hey, der Threadersteller heisst VirusMaker, hat Paranoia vor Hex-Editoren und will sein kompiliertes Programm verschlüsseln. Da ist Hacken nicht mal so weit hergeholt... 😉



  • So, danke!

    Und nein, ich wollte nicht was hacken, sondern Hangman proggen!
    Und da sollten die Wörter nicht ausgelesen werden können!

    Danke mal für die Antworten, ich werde sie mal ausprobieren!

    mfg



  • VirusMaker schrieb:

    Und nein, ich wollte nicht was hacken, sondern Hangman proggen!
    Und da sollten die Wörter nicht ausgelesen werden können!

    Wie wäre es, wenn du die Wörter in einer separaten Datei auslieferst, die Datei kannst du ja genau so verschlüsseln. Hat den Vorteil, dass du nicht dein Programm jedesmal neu umschreiben und kompilieren musst, wenn du neue Begriffe hinzufügen willst 😉



  • wuschel123 schrieb:

    VirusMaker schrieb:

    Und nein, ich wollte nicht was hacken, sondern Hangman proggen!
    Und da sollten die Wörter nicht ausgelesen werden können!

    Wie wäre es, wenn du die Wörter in einer separaten Datei auslieferst, die Datei kannst du ja genau so verschlüsseln. Hat den Vorteil, dass du nicht dein Programm jedesmal neu umschreiben und kompilieren musst, wenn du neue Begriffe hinzufügen willst 😉

    auch ne gute idee!

    aber wie soll ichs dann verschlüsseln?

    das mit XOR eine gute idee, finde ich



  • Ja, XOR ist grundsätzlich nicht schlecht. Nimm einfach einen genügend langen Schlüssel.

    Sieh dir vielleicht auch mal den One Time Pad an...



  • Nexus schrieb:

    Ja, XOR ist grundsätzlich nicht schlecht. Nimm einfach einen genügend langen Schlüssel.

    Sieh dir vielleicht auch mal den One Time Pad an...

    naja, da das ja nicht iwas wichtiges ist, nur ein spiel, kann ich ruhig etwas schwaches nehmen...
    oder?


  • Mod

    VirusMaker schrieb:

    naja, da das ja nicht iwas wichtiges ist, nur ein spiel, kann ich ruhig etwas schwaches nehmen...
    oder?

    Für deinen Zweck reicht als Schlüssel ein einziges Zeichen. So ist sicher gestellt, dass man die Wörter nicht zufällig liest. Jemand der es wirklich ernst meint wird auch bei einer beliebig schweren Verschlüsselung an die Wörter kommen



  • Für sowas ist es am besten, sich einen möglichst unbekannten Pseudozufallszahlengenerator zu besorgen. Den Algorithmus kannst du leicht verändern. Wahrscheinlich ruinierst du dadurch die Qualität des Algorithmus, ist aber für diesen Fall nicht so dramatisch, solange er dadurch nicht anfängt, reihenweise Nullen zu produzieren.
    Dann kannst du deine Wörterdatei verschlüsseln, indem du zu jedem Byte einen Zufallswert zwischen 0 und 255 addierst. Zum Entschlüsseln machst du dasselbe und subtrahierst die Zahlen stattdessen. Den Seed kannst du entweder in die Datei schreiben oder du nimmst einen statischen. Es ist auch ratsam, einen Hashwert in die Datei zu schreiben, sonst kann man die Datei verändern, ohne dass man den Algorithmus kennt.
    So verdirbst du mit wenig Aufwand den meisten Leuten gründlich die Lust, deine Wörterdatei lesen zu wollen.

    Du solltest allerdings bei Programmstart nicht die gesamte Datei in den RAM laden und entschlüsseln, sonst war alles für die Katz.



  • SeppJ schrieb:

    VirusMaker schrieb:

    naja, da das ja nicht iwas wichtiges ist, nur ein spiel, kann ich ruhig etwas schwaches nehmen...
    oder?

    Für deinen Zweck reicht als Schlüssel ein einziges Zeichen. So ist sicher gestellt, dass man die Wörter nicht zufällig liest. Jemand der es wirklich ernst meint wird auch bei einer beliebig schweren Verschlüsselung an die Wörter kommen

    Wirklich ernst nehmen 😃
    Der muss schon echt armselig sein, um bei Hangman zu cheaten!



  • VirusMaker schrieb:

    Wirklich ernst nehmen 😃
    Der muss schon echt armselig sein, um bei Hangman zu cheaten!

    Aber cheaten, indem man einen Hex-Editor benutzt, ist wohl gerade noch nicht armselig? 😉



  • braucht man ja eh keinen hex-editor!

    kann man auch, wenn man mit dem normalen editor aufmacht!
    z.b. notepad!



  • VirusMaker schrieb:

    braucht man ja eh keinen hex-editor!

    kann man auch, wenn man mit dem normalen editor aufmacht!
    z.b. notepad!

    gibt noch laufzeit-packer, die dir das programm an sich noch ma komprimieren und imho auch so etwas unkenntlich machen - kann ich aber nicht beschwören ^^
    aber wenn du nur notepad verhinden willst, dann reicht auch das hier:
    const char[] wort = {'C', 'P', 'P', '\0'};

    bb



  • unskilled schrieb:

    VirusMaker schrieb:

    braucht man ja eh keinen hex-editor!

    kann man auch, wenn man mit dem normalen editor aufmacht!
    z.b. notepad!

    gibt noch laufzeit-packer, die dir das programm an sich noch ma komprimieren und imho auch so etwas unkenntlich machen - kann ich aber nicht beschwören ^^
    aber wenn du nur notepad verhinden willst, dann reicht auch das hier:
    const char[] wort = {'C', 'P', 'P', '\0'};

    bb

    das geht echt?

    ich habs immer so gemacht:

    const char[] loesung1={"Katze"};
    

    und nur wenn ich die buchstaben einzeln nehme, sollte es gehen?

    naja, werds am we mal ausprobieren!



  • Wozu die Wörterdatei verschlüsseln? Die kann doch ruhig in plaintext vorliegen, wichtig ist doch nur, dass man nicht so leicht rausfinden kann welches Wort gerade dran ist. Wenn es natürlich nur ein Wort mit 11 Zeichen gibt kann man es leicht aus der Datei ablesen 😉



  • Tippgeber schrieb:

    Wozu die Wörterdatei verschlüsseln? Die kann doch ruhig in plaintext vorliegen, wichtig ist doch nur, dass man nicht so leicht rausfinden kann welches Wort gerade dran ist. Wenn es natürlich nur ein Wort mit 11 Zeichen gibt kann man es leicht aus der Datei ablesen 😉

    stimmt auch wieder!

    werd mal schauen, was die beste lösung ist!


Anmelden zum Antworten