[C/C++] C++ Rätsel von G-Data

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Manyl, 6. Mai 2009 .

Schlagworte:
  1. 6. Mai 2009
    C++ Rätsel von G-Data

    Code:
    void decrypt(char* secret, char* key)
    {
     char c; char *k = key;
     while((c = *secret) !=0 )
     {
     *secret++ = (c-32) - ((*k)-64) + 32;
     k = *(k+1) ? k+1 : key;
     }
    }
    char *key = "????????";
    char secret[100];
    strcpy(secret, "ZJ]]_Y2ec%_hXH]P\\%k_eS2OSW4n\\]
     f+RJincNUS.QU_eLW].Ngn7F^^.IYl7XUSZZYmjJ^");
    decrypt(secret,key);
    cout << "GEHEIME BOTSCHAFT: " << secret << endl;

    das ist der code....wer knackts?
    hab da selbst seit 2 tagen dran gefuchtelt, aber ich komm net druff
     
  2. 6. Mai 2009
    AW: C++ Rätsel von G-Data

    Du willst ja anscheinend key bekommen, nicht wahr? So wie ich das sehe, ist das unmöglich, weil man ja schließlich nicht weiß, was am Ende herauskommen soll, also die Klartext-Botschaft.
     
  3. 6. Mai 2009
    AW: C++ Rätsel von G-Data

    es soll ja auch nicht zu einfach sein, aber im prinzip kann es doch mnicht so schwer sien

    wenn ich das richtig sehe, und mal davon ausgehe das der "key" 8 zeichen lang ist, gibts "nur" 256^8 möglichkeiten


    bruten müsste doch möglich sein oder nich? ich wüßte nur nich wie ich des testen kann....bestenfalls über ne schleife, aber das wär nich optimal weil die komplett durchlaufen würde....
     
  4. 6. Mai 2009
    AW: C++ Rätsel von G-Data

    willst dich bei gdata bewerben und wir sollen den code knacken?
     
  5. 6. Mai 2009
    AW: C++ Rätsel von G-Data

    eigentlich nicht

    aber ich find das ist mal ne interessante art ne stellenanzeige aufzusetzen und mich intetressiert jetzt mittlerweile echt, was dafür die lösung ist...
     
  6. 6. Mai 2009
    AW: C++ Rätsel von G-Data

    okay stimmt... sitze jetzt auch gerade daran =) Spieltrieb!!!
     
  7. 6. Mai 2009
    Hmm, das ist doch eine Vigenere-Verschlüsselung, oder?

    edit: Hinweis:
    Spoiler
    ok, ich bin mir relativ sicher, dass der Schlüssel nur aus Großbuchstaben besteht.

    Ok, ich hab's raus. Ca. anderthalb Stunden gebraucht...


    HINWEIS:
    Spoiler
    Das Leerzeichen im Klartext ist in der Verschlüsselung leicht wiederzufinden.
     
  8. 11. Mai 2009
    AW: C++ Rätsel von G-Data

    Nein
     
  9. 12. Mai 2009
    AW: C++ Rätsel von G-Data

    hi, hast du die Aufgabestellung in ihrer Ursprungsform? man braucht echt mehr Informationen.

    meiner Meinung nach kann man diese Aufgabe ohne Glück gar nicht lösen!

    wenn der Schlüssel genau so lang ist wie die Nachricht, ist DES- oder Vigenère-Verschlüsselung genau so unlknackbar wie OTP!

    für eine Häufigkeitsanalyse muss man mindestends die Sprache der Nachricht kennen.

    wird die Nachricht zusätzlich blockweise verschlüsselt?

    was ist mit dem Alphabet, sind alle Zeichen erlaubt? 16-Bit-Unicode-Zeichensatz hat insgesamt 65.536 Zeichen!

    danke

    p.s.

    *secret++ = c - (*k) -64;
    sollte gleich sein wie
    *secret++ = (c-32) - ((*k)-64) + 32;
     
  10. 12. Mai 2009
    AW: C++ Rätsel von G-Data

    Dir Originalanzeige findet man unter http://www.gdata.de/ueber-g-data/karriere/stellenangebot/berufserfahrene/sie-sind-unser-neuer-c-software-entwickler-mw.html.

    Hab auch gedacht, dass da was fehlt und hab danach gesucht, jedoch Fehlanzeige.
    Ohne zumindest ein Teil des Klartextes kann man diese Aufgabe nicht richtig Lösen.

    Mfg Rushh0ur
     
  11. 12. Mai 2009
    AW: C++ Rätsel von G-Data

    Er ist kürzer (Wie einige schon an der Anzahl Fragezeichen erkannt haben, 8 Zeichen lang)
    ASCII-Zeichensatz reicht.

    Stimmt, aber die Originalversion dokumentiert den Gedankengang des Programmierers. Das fand ich sehr hilfreich um zu erraten, aus welchem Zeichensatz der Schlüssel besteht (siehe Spoiler in meinem 1.Post)

    Und wenn man sich überlegt, aus welchem Zeichensatz wahrscheinlich der Klartext besteht, gibt es dabei ein Zeichen, dessen ASCII-Code sich deutlich vom Rest unterscheidet. (spoiler in meinem 2.post). Dann kann man erkennen, dass an manchen Stellen im Quelltext nur dieses Zeichen verschlüsselt worden sein kann (nochmal den Verschüsselungsalgorithmus anschauen)
     
  12. 12. Mai 2009
    AW: C++ Rätsel von G-Data

    OMG, ich habs geschafft.

    An alle die es probieren und immer noch nicht geschafft haben, hier ein paar Tipps:

    1. Key besteht nur aus Großbuchstaben und die Länge entspricht der Anzahl der Fragezeichen im Code.
    2. Klartext besteht nur aus Großbuchstaben und Leerzeichen.

    Am einfachsten löst man es, wenn man jeden einzelnen Keybuchstaben einzeln bruttet und dabei die Kriterien 1 und 2 beachtet

    Mfg Rushh0ur
     
  13. 13. Mai 2009
    AW: C++ Rätsel von G-Data

    Da muss ich dich leider enttäuschen^^

    Es müsste korrekt c - (*k) + 64 heißen. Denn - ( (*k) - 64) ist umgeformt - (*k) + 64, da die Vorzeichen umgekehrt werden.
     
  14. 15. Mai 2009
    AW: C++ Rätsel von G-Data

    hi, ich hab's geknackt! willst du paar tips oder die lösung?
     
  15. 15. Mai 2009
    AW: C++ Rätsel von G-Data

    Sooo,

    nach 2,5 Stunden habe ich nun auch das Rätzel gelöst . Ist eigentlich ganz einfach ... Naja und hätte ich das von Rushhor 3 Stunden eher gelesen, dann wäre ich auch noch schneller gewesen xD...

    Also wenn Fragen sind oder die Lösung erwünscht ist einfach bescheid sagen

    LG Farin
     
  16. 18. Mai 2009
    AW: C++ Rätsel von G-Data

    ist jetzt offiziell gelöst^^

    Spoiler
    NETZWERK ist der Key

    Nur gucken, wenn ihr auch gelöst habt bzw euch den Spaß verderben wollt
     
  17. 20. Mai 2009
    AW: C++ Rätsel von G-Data

    Hallo Zusammen!

    Mich würde Eure Herangehensweise an diese Aufgabe interessieren. Ich selbst habe nun zwei Tage davor gesessen, aber letzlich keinen sinnvollen Angriffspunkt bekommen.
    Habt Ihr Häufigkeitsanalyse benutzt oder alles Bruteforced?

    Gruss Terence
     
  18. 20. Mai 2009
    AW: C++ Rätsel von G-Data

    Also ich kann nur für mich sprechen, aber: weder noch.

    Erstmal den Verschlüsselungsalgorithmus analysiert und daraus geschlossen, aus welchem Zeichensatz der Klartext (höchstwahrscheinlich) besteht. Dann die Schlüssellänge erraten (Anzahl der Fragezeichen in der Aufgabe) und eine Schwachstelle in der Verschlüsselung gesucht und gefunden (ASCII-Code des Leerzeichens unterscheidet sich deutlich von dem der restlichen Zeichen.)
    Diese Erkenntnis ausgenutzt um 4 Buchstaben des Schlüssels herauszufinden.
    Dann einen Fünfzeiler geschrieben, der aus einer Wordlist (Sprache kann man inzwischen leicht erraten) alle möglichen Schlüsselwörter raussucht, aus den ca. 10 Treffern den wahrscheinlichsten ausprobiert und *bingo*.

    Aber wie du lesen kannst, gab es hier verschiedenste Herangehensweisen.
     
  19. 20. Mai 2009
    AW: C++ Rätsel von G-Data

    Teils Bruteforce, teils bisschen Analyse...

    Verschlüsselten Text in 8 Blöcken untereinander geschrieben, so das die Buchstaben, die mit dem gleichen Buchstaben des Passworts verschlüsselt werden, untereinander stehen. Danach hab ich alles bisschen umgeformt.

    Aus
    Code:
    *secret++ = (c-32) - ((*k)-64) + 32;
    hab ich erstmal
    Code:
    *secret++ = c - ((*k)-64);
    gemacht.

    Aus der Tatsache, dass das Keyzeichen - 64 genommen wird, hab ich vermutet, dass es nur Großbuchstaben sind ("A" = 65 in ASCII, "a" wäre 97 und würde z.B. beim "%" 5 herausbringen, also nichts brauchbares....)

    Der Rest war Bruteforce... Zeichen für Zeichen getestet bis in der Zeile nur brauchbare Zeichen rauskamen. (Immer mit "N" begonnen und am Ergebnis geschaut in welche Richtung das Passwortzeichen geht)

    mfg r90
     
  20. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.