Macros ersetzen nicht alles?



  • Stimmt auch wieder. Hatte nur gedacht, dass man dadurch vielleicht seinen Code besser schützen könne. Weil falls es irgendwer schafft an den Code eines meiner Programme heranzukommen wäre dies von großem Vorteil. Dann würde ich vor dem Kompilieren eine Kopie von den Header-, Quelldateien, usw. machen und dann die Ganzen Dateien durch ein Programm laufen lassen, welche sie in dieser Art "verunstalten". Dadurch wäre es für Fremde ein großer Aufwand, den Quelltext zu lesen.

    😮 🙄

    Sorry, aber ich habe noch nie grösseren Mist gehört. 😉
    Ich hoffe jetzt mal, dass es einfach schon spaet und du seeeeehr müde bist.. 😉



  • Speedy_92 schrieb:

    Stimmt auch wieder. Hatte nur gedacht, dass man dadurch vielleicht seinen Code besser schützen könne. Weil falls es irgendwer schafft an den Code eines meiner Programme heranzukommen wäre dies von großem Vorteil.

    Leichter Anfall von Paranoia?
    Ich denke kaum, dass sich jemand bemüht, um deinen Code zu stehlen und zu vermarkten :p

    Speedy_92 schrieb:

    Dadurch wäre es für Fremde ein großer Aufwand, den Quelltext zu lesen.

    Und für dich genauso. Wenn du noch eine reine, noch nicht verunstaltete Form hättest, könnte der Feind ebenso an diese gelangen.

    Denk immer an die Achse des Bösen :p



  • Ja, wenn du das sagst, dann wird es wohl stimmen 😃
    Gute Nacht allerseits, bin schon seeeeeeeeehr müde, wie drakon schon meinte 😛



  • Wenn du wirklich obfuscated programmieren willst, solltest du richtige Makromagie benutzen:

    #define AB(x) x ## out<<
    #define SD(x) s ## x ## d::
    
    int main()
    {
        SD(t)AB(c)"Hello World!";
    }
    

    🤡



  • Seltsam... die meisten Leute schaffen es doch auch ohne solche komischen Tricks, unlesbaren Code zu schreiben... 🙄



  • Don06 schrieb:

    Wenn du wirklich obfuscated programmieren willst, solltest du richtige Makromagie benutzen:

    #define AB(x) x ## out<<
    #define SD(x) s ## x ## d::
    
    int main()
    {
        SD(t)AB(c)"Hello World!";
    }
    

    🤡

    Also die Macromagie gefällt mir so langsam 😃

    Tia... ich brauche halt ein wenig mehr Mittel um unleserlichen Code zu schreiben 😉


  • Administrator

    Wie wäre es mit sowas?

    #include <iostream>
    
    #define _private public
    #define _public private
    #define _class struct
    #define _struct class
    #define _void int
    #define _int void
    #define _std xml
    #define _xml std
    #define _for while
    #define _while for
    
    #define MAIN(x)       \
            int main()    \
            {             \
                x;        \
                return 0; \
            }
    
    _struct CTest
    {
    _private:
        static _int test(_void var) { _xml::cout << "test " << var << _xml::endl; };
    };
    
    MAIN(_while (_void i = 0; i < 5; ++i) { CTest::test(i); })
    
    // usw. :D
    

    Grüssli



  • Sieht wirklich interessant aus 😃
    Wenn ich mal lange Weile habe schreibe ich ein Programm, welches den Code so "schön" macht 🤡



  • Was sich auch lohnt, wenn du Platz sparen willst:

    #define m int main() {
    #define f for(
    #define w while(
    #define t while(true);
    #define i if(
    #define v(a) int a;
    #define y(a) int a = 0;
    #define n(a) (++a)
    #define s(a) std::cout << a << std::endl;
    
    m
    v(x)
    f y(z) z<3; n(z))
     i z<2) {s("x="<<x)}
    t
    }
    

    Noch besser siehts in einer Zeile aus:

    m v(x) f y(z) z<3; n(z)) i z<2) {s("x="<<x)} t}
    

    Viel Spass damit 😃
    (Eigentlich schade, dass man #define nicht auch noch abkürzen kann)...



  • Wieso ist damals IBM nich auf die Idee gekommen DOS Code so verunstalten, dann hätte der Bill den Code nich kopieren können.

    #define for_Each(a,b) for(int i= (a), i< (b), ++i)
    
    for_Each(0,10){
    
    }
    

    das find ich schön 🕶


Anmelden zum Antworten