#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 + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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.... + Multi-Zitat Zitieren
#4 6. Mai 2009 AW: C++ Rätsel von G-Data willst dich bei gdata bewerben und wir sollen den code knacken? + Multi-Zitat Zitieren
#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... + Multi-Zitat Zitieren
#6 6. Mai 2009 AW: C++ Rätsel von G-Data okay stimmt... sitze jetzt auch gerade daran =) Spieltrieb!!! + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#8 10. Mai 2009 AW: C++ Rätsel von G-Data bin ich richtig wenn "G-Data" rauskommt? + Multi-Zitat Zitieren
#10 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; + Multi-Zitat Zitieren
#11 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 + Multi-Zitat Zitieren
#12 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) + Multi-Zitat Zitieren
#13 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 + Multi-Zitat Zitieren
#14 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. + Multi-Zitat Zitieren
#15 15. Mai 2009 AW: C++ Rätsel von G-Data hi, ich hab's geknackt! willst du paar tips oder die lösung? + Multi-Zitat Zitieren
#16 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 + Multi-Zitat Zitieren
#17 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 + Multi-Zitat Zitieren
#18 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 + Multi-Zitat Zitieren
#19 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. + Multi-Zitat Zitieren
#20 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 + Multi-Zitat Zitieren