Was macht dieses Programm?



  • Guten Abend, ich bin MacUser, und kann soweit ich das rausgefunden habe die conio.h Bibliothek deshalb nicht nutzen...

    Für ein bestimmtes Rätsel müsste ich jedoch wissen was dieses Programm anstellt/ausgibt...

    Kann mir da vielleicht jemand helfen?

    Danke schon einmal 😉

    #include <stdio.h>
    #include <conio.h>
    int main(void) {
        int bar;
            int bazz[87] = {108, 118, 136, 53, 126, 136, 137, 53, 121, 126, 122, 53,
                         86, 131, 137, 140, 132, 135, 137, 53, 118, 138, 123, 53,
                         121, 126, 122, 53, 91, 135, 118, 124, 122, 53, 131, 118,
                         120, 125, 53, 121, 122, 130, 53, 129, 122, 119, 122, 131,
                         65, 53, 121, 122, 130, 53, 106, 131, 126, 139, 122, 135,
                         136, 138, 130, 53, 138, 131, 121, 53, 121, 122, 130, 53,
                         124, 118, 131, 143, 122, 131, 53, 103, 122, 136, 137, 84,
                         31, 83, 53};
        int foo[24] = {100, 10, 31, 30, 10, 26, 30, 4, 28, 18, 27, 10, 111, 10, 26,
                       27, 24, 10, 26, 28, 4, 30, 27, 31};
        for (bar = 0; bar < 0x57; bar++)
            printf("%c", (0x1 * 0x2 * 0x2 * bazz[bar] - 0x54) / 0x4);
        int gak;    
        scanf("%d", &gak);
        printf("> ");
        for (bar = 0; bar < 0x18; bar++)
            printf("%c", foo[bar] ^ gak);
        getch();
    }
    


  • Primax schrieb:

    Guten Abend, ich bin MacUser, und kann soweit ich das rausgefunden habe die conio.h Bibliothek deshalb nicht nutzen...

    Dann lösch die Zeilen 2 und 22 und kompilier es dann.

    Keine Panik!


  • Mod

    Magische Veränderung des Programms, die einen vollkommen unnötigen Befehl entfernt:

    #include <stdio.h>
    int main(void) {
        int bar;
            int bazz[87] = {108, 118, 136, 53, 126, 136, 137, 53, 121, 126, 122, 53,
                         86, 131, 137, 140, 132, 135, 137, 53, 118, 138, 123, 53,
                         121, 126, 122, 53, 91, 135, 118, 124, 122, 53, 131, 118,
                         120, 125, 53, 121, 122, 130, 53, 129, 122, 119, 122, 131,
                         65, 53, 121, 122, 130, 53, 106, 131, 126, 139, 122, 135,
                         136, 138, 130, 53, 138, 131, 121, 53, 121, 122, 130, 53,
                         124, 118, 131, 143, 122, 131, 53, 103, 122, 136, 137, 84,
                         31, 83, 53};
        int foo[24] = {100, 10, 31, 30, 10, 26, 30, 4, 28, 18, 27, 10, 111, 10, 26,
                       27, 24, 10, 26, 28, 4, 30, 27, 31};
        for (bar = 0; bar < 0x57; bar++)
            printf("%c", (0x1 * 0x2 * 0x2 * bazz[bar] - 0x54) / 0x4);
        int gak;    
        scanf("%d", &gak);
        printf("> ");
        for (bar = 0; bar < 0x18; bar++)
            printf("%c", foo[bar] ^ gak);
    }
    

    Tadaa! Standardkonformes C.

    P.S.: Aha, ein Geocache! Aber ein bisschen weit weg 😞



  • SUPER!

    Vielen dank 🙂

    Wusste nicht, dass ichs auch auf dem Mac zum laufen bekomme 😉

    Und ja, ein Geocache 😉



  • was bewirkt das ^ Zeichen?? Finde das nicht wirklich



  • Exklusiv Oder.
    Kapier aber trotzdem nicht was man eingeben muss um eine sinnvolle Ausgabe zu erhalten.
    Könnte das evtl. jmd. erläutern?



  • Frag doch Google.

    Mit der kompletten Frage, die da ausgegeben wird.



  • ok, aber kann man das aus dem programm auch irgendwie rauslesen ??



  • Die Antwort ist allgemeines Grundwissen für Programmierer.

    Die Frage wird noch gesucht.



  • Wo das im Programm gespeichert ist wäre echt mal interessant 😉



  • Primax schrieb:

    Wo das im Programm gespeichert ist wäre echt mal interessant 😉

    In foo.



  • Primax schrieb:

    Wo das im Programm gespeichert ist wäre echt mal interessant 😉

    Meinst du die Frage, die die Erde ausrechnen sollte?



  • Ok, das wäre ja dann geklärt.
    Aber jetzt mal Ernst:
    Warum macht man sowas?
    Ein simples "puts" würde die Frage doch auch stellen und ein vergleich ob bei Scanf 42 eingegeben wurde....

    Hat das jetzt einen Hintergrund der mir verborgen ist?



  • Ein "Gehe mal zu den Koordinaten Nxxx Oyyyy" oder "Geh mal zu dem Ausflugsziel xy" und schau dir die schöne Gegend, an reicht auch.

    Was muss man noch nach Tupperdosen im Dreck suchen.

    😃


  • Mod

    unsure schrieb:

    Hat das jetzt einen Hintergrund der mir verborgen ist?

    Ja. Es ist ein Rätsel. Der Rätselsteller veröffentlicht den Quelltext des Rätselprogramms. Damit man nicht die Lösung direkt aus dem Programm sehen kann und auch die Funktion des Programms nicht direkt offensichtlich ist, wird verschleiert, was das Programm tut. Teil des Rätsels ist, dass der Rätsellöser heraus bekommt, dass es sich hierbei um den Quelltext eines Computerprogramms handelt und sich damit beschäftigt, wie man daraus überhaupt ein Programm erstellt.



  • Es ist halt ein Rätsel, und bei diesem soll man halt nicht im programmcode sehen, wohins geht 😉



  • Sorry, dann hab ich das ganze falsch verstanden.
    Ich dachte der Quelltext liegt dem Ratenden nicht vor.
    Vielleicht auch schon . Egal. Ein Rätsel mit Tuppadosen und Quellcode.
    Passt schon 😃 😃


Anmelden zum Antworten