[Qt] In meinen exe-dateien sind offene quellcodes?



  • sind denn wirklich debug-infos drin? (,die man so einfach gar nicht erkennen kann!) oder siehste nur deine stringliterale und die klassennamen und die importierten funktionsnamen?
    die stringliterale sieht man natürlich, denn der compiler kann die nicht sinnvoll in was anderes kompilieren.
    die importierten funktionsnamen siehste, weil intern dein programm auch nur anhand der funktionsnamen sich die funktionszeiger aus ner *.dll holt.
    die namen der klassen siehste, wenn rtti benutzt wird. die legt er auch als strings ab.
    nichts davon ist aber schlimm und würde auch nur ansatzweise erlauben, daß der kunde deinen code entschlüsselt.
    die klassennamen alleine sind doch kein hinreichender tip, wie dein programm funktioniert.
    stringliterale mit upx schützen geht nicht gegen jemanden, der es versucht und mehr als 15 minuten zeit hat. willste die schützen, dann mach das bei vereinzelten strings durch verschlüsseln und signieren.
    also statt

    char copyRightMessage[]="(c) by Hans Mustermann";
    ...
    cout<<copyRightMessage<<endl;
    

    jetzt lieber

    int hash(char const* str){
       unsigned int h=4711;
       while(*str){
          h=h*31+*str;
          ++str;
       }
       return h;
    }
    char copyRightMessage[]="(c) by Hans Mustermann";
    int const copyRightMessageHash=635472;
    ...
    if(hash(copyRightMessage)!=copyRightMessageHash) delete wasWichtiges;
    cout<<copyRightMessage<<endl;
    

Anmelden zum Antworten