kopierschutz und verschlüsselung



  • Gruezi,
    wie kann ich eine .exe, die auf CD-ROM ausgeliefert wird, am besten gegen Vervielfältigung schützen? Zudem benötige ich eine Verschlüsselung der Textdateien, mit denen die .exe arbeitet.

    thanks in advance
    pablo



  • Hehe, wenn Du darauf eine Antwort gefunden hast, dann sag mir bitte die Lösung, dann verkauf ich dass an die Spielehersteller und werde Millionär 😉 😃 😉
    Einen wirklichen Schutz gegen Vervielfältigung gibt es (noch) nicht (zum Glück).
    Zum Verschlüßeln von Text/Daten gibts haufenweise Bibliotheken in den jeweiligen Sprachen. Aber ob das was hilft? 😉



  • @Ingo aka Desert Hawk,

    einen 100% Schutz gegen das Kopieren von
    digitalen Daten wird es nie geben.
    Ein Kopierschutz bewirkt nur, das es komplizierter
    ist die Daten zu vervielfälltigen.

    Bye Peter.



  • vielleicht kannst du das gebrauchen. (dann musst du aber schon seeeehr verzweifelt sein...)

    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    #define bigBuf 1024
    
    //
    // int main (int argc, char *argv[])
    //
    
    int main(int argc, char *argv[])
    {
        int i = 0;
        int key;
        int array[bigBuf];
        char string[bigBuf];
        const char fileName[] = "Code.txt";
    
        cout << "Enter String, max. " << bigBuf << " characters:\n";
        cin.get (string, bigBuf);
        cout << "Key-Number: ";
        cin >> key;
    
        ofstream fout(fileName, ios::out);
    
        if (argc == 2)
        {
            if (!strcmp (argv[1], "text"))
            {
                for (int j = 0; j <= strlen(string) - 1; ++j)
                {
                    i = (char(string[j])) * key;
                    cout << j << ": " << i << endl;
                    fout << i << "\n";
                }
                goto LClose;
            }
        }
    
        for (int j = 0; j <= strlen(string) - 1; ++j)
        {
            i = (char(string[j])) * key;
            fout << i << "\n";
        }
    
     LClose:
        fout.close();
    
     return 0;
    }
    

    kodiert den text.
    ein anfang, wenn auch kein guter, weil vom mir 🙂

    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    #define bigBuf 1024              
    
    void save (int j, int array[bigBuf]);
    
    //
    // int main (int argc, char *argv[])
    //
    
    int main(int argc, char *argv[])
    {
        int i, j, k;   // k für key
        int array[bigBuf];
        const char fileName[] = "Code.txt";
    
        j = 0;
    
        ifstream fin(fileName, ios::in);
        if(!fin)
        {
            cout << "Unable to open " << fileName << endl;
            return 0;
        }
    
        cout << "key: ";
        cin >> k;
    
        while (fin >> i)
        {        
            array[j] = i;
            ++j;
        }
        fin.close();
    
        ofstream fout(fileName, ios::out);
    
        if (argc == 2 && !strcmp (argv[1], "save"))
            save (j, array);
    
        for (int temp = 0; temp <= j - 1; ++temp)
        {
            i = array[temp];
            i /= k;
            fout << char(i);
        }
        fout << endl;
        fout.close();
        cout << "File encoded.\n";
    
     return 0;
    }
    
    void save (int j, int array[bigBuf])
    {
    
        ofstream fout ("StringSave.txt", ios::out);
        if (!fout)
        {
            cout << "Copy can't be created.\nCouldn't open 'StringSave.txt'\n";
            return;
        }
        cout << "Creating Copy...\n";
    
        for (int i = 0; i < j; ++i)
            fout << array[i] << endl;
    
        fout.close();
        cout << "Copy created\n";
    }
    

    mögliche argumente an das programm:
    encode: text -> gibt dir die anzahl int's und die dazugehörigen codierten chars aus.
    decode: save -> der codierte text wird nochmal woanders abgespeichert.

    mfg



  • mir fällt gerade auf, dass das ein sch**** (schlechtes ^^) programm ist. warum

    if(... && i <= strlen(irgendwas) -1)
    

    nehmen, wenn man auch

    if(... && i < strlen(irgendwas)
    

    nehmen kann?!

    mfg



  • Ingo aka Desert Hawk schrieb:

    Einen wirklichen Schutz gegen Vervielfältigung gibt es (noch) nicht (zum Glück).

    Deswegen schreibe ich ja, dass ich nach der besten (nicht immer ==perfekt) Methode suche.
    Habe mir auch schon überlegt, das ganze mit 'nem Dongle zu schützen.
    Fällt noch jemandem was ein?

    mfg
    pablo


Anmelden zum Antworten