Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

25.01.2010, 18:39

Und wie ?
Etwa mit Decodierung ?
Ein Normalsterblicher wird es denke ich trotzdem schwer haben. :P

12

25.01.2010, 18:46

Zitat von »"Lodda"«

Und wie ?
Etwa mit Decodierung ?
Ein Normalsterblicher wird es denke ich trotzdem schwer haben. :P


Kuck dir die Exe mal mit dem Hex-Editor deines Vertrauens an.
"Normalsterbliche", die es versuchen, werden es finden. ;)

13

25.01.2010, 19:10

Und wie kann man seine Programme dann gegen einen solchen Hex-Editor schützen ?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

14

25.01.2010, 20:16

je komplexer dein programm desto einfacher ist es, es vor unberechtigen nutzern zu schützen. viele spiele haben eine exe die 10mb groß ist. davon sind aber 6mb kopierschutz und nur 4mb wirklich nützlich.

am einfachsten ist es wenn du dein pw verschlüsselst. benutz ein paar mal modulo und divisionen auf elemente eines charstrings und schon kann es kein normalsterblicher einfach so auslesen.
beispiel:
achtung pawncode:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
stock Encrypt(string[])
{
    for(new x=0; x < strlen(string); x++)
      {
          string[x] += (4^x) * (x % 11);
          if(string[x] > (0xff))
          {
              string[x] -= 244;
          }
      }
    return 1;
}
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

15

25.01.2010, 20:59

Danke , werde es bei Gelegenheit einmal ausprobieren.
Jedoch bin ich auf ein nächstes Problem gestoßen , und zwar habe ich mir jetzt eine Klasse gemacht in der ich im Konstruktor nach dem Dateinamen des neuen HTML-Dokuments frage , und den Anfang in die neue Datei schreiben... Das alles hat überraschend keine Fehlermeldung ausgespuckt , doch wenn ich dann den Konstruktor aufrufen will , wenn die Wahl getroffen wurde ein neues Dokument zu starten happerts.

Und zwar wieder der selbe Fehler wie vorher , nur dass ja ein Konstruktor keinen Datentyp haben darf. :O

Zitat

1>Verknüpfen...
1>html_help.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: __thiscall CHTML_Helper::~CHTML_Helper(void)" (??1CHTML_Helper@@QAE@XZ)".
1>C:\Users\Lothar Pietrek\Desktop\HTML_Helper\Release\HTML_Help.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Users\Lothar Pietrek\Desktop\HTML_Helper\HTML_Help\Release\BuildLog.htm" gespeichert.
1>HTML_Help - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Die jetzige Header-Datei:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <fstream>
#include <windows.h>

using namespace std; 

    void PasswortAbfrage(int Passwort, int menu_auswahl);
    void hauptmenu(int menu_auswahl);

enum Schriftfarbe
{
    SCHWARZ,
    ROT,
    GRUEN,
    BLAU,
    LILA,
};

class CHTML_Helper 
{
    //Membervariablen

private:
    char Buffer[255];
    char Dateiname[31];


    //Memberfunktionen

public:
    CHTML_Helper(); //Konstruktor

    ~CHTML_Helper(); //Destruktor


    

};

CHTML_Helper::CHTML_Helper() //Konstruktor

{
    cout << "Bitte geben sie den gewünschten Dateinamen ein (Max. 30 Zeichen): " << endl;
    cin >> Dateiname;
    
    ofstream fout(Dateiname);
    fout << "<html>";
}


Die Main-Datei:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "html_help.h"

int main()
{

    //Variablen

    int Passwort = 9527521;
    int menu_auswahl;
    
    

    //Hauptprogramm

    SetConsoleTitleW (L"HTML-Helper by Lodda");
    PasswortAbfrage (Passwort, menu_auswahl);
    

    getchar();
}

// Funktion PasswortAbfrage

void PasswortAbfrage(int Passwort, int menu_auswahl) 
{

    cout << "Sie benoetigen fuer dieses Programm ein Passwort!" << endl;
    cout << "Bitte geben sie das Passwort ein:" << endl;
    cin >> Passwort;
 

    if (Passwort == 9527521) 
    {
        cout << "Zutritt gewaehrt." << endl;
        hauptmenu(menu_auswahl);
    }
    else
    {
        cout << "Zutritt verweigert!" << endl;
        Sleep(5000);
    }


}

void hauptmenu(int menu_auswahl)
{
    cout << "\t\t--Hauptmenu--" << endl;
    cout << "\t\t--Copyright 2010 Lothar Pietrek--" << endl;

    cout << "\n\t\t(1)Neues HTML-Dokument" << endl;
    cout << "\t\t(2)Hilfe anzeigen" << endl;
    cout << "\t\t(3)Beenden" << endl;
    cin >> menu_auswahl;

    switch(menu_auswahl)
    {
    case 1: 
        {
            cout << "Wird geladen..." << endl;
            CHTML_Helper();
        } break;
    case 2:
        {
            cout << "HTML-Helper Hilfe wird geladen..." << endl;
        } break;
    case 3:
        {
            cout << "HTML-Helper wird beendet..." << endl;
        } break;

    default: cout << "Fehlerhafte Auswahl!" << endl;
    }
    getchar();
}


Müsste ich den Konstruktor irgendwie in die Parameterlisten der Funktionen reinbringen , oder die Funktionen neu in der Klasse schreiben ?

16

25.01.2010, 21:01

Du hast den Destruktor deklariert, aber nie implementiert ;)

Mach die zeile
~CHTML_Helper(); //Destruktor
Weg, dann wird automatisch einer generiert.

17

25.01.2010, 21:04

Ohh ... Ich bin wohl manchmal echt schwer von Begriff. :x

Vielen , vielen Dank. :)
Könnte ein Mod den Thread erstmal offen lassen , falls weitere Fragen aufkommen ? :)

18

25.01.2010, 21:07

Zitat von »"Lodda"«

Könnte ein Mod den Thread erstmal offen lassen , falls weitere Fragen aufkommen ? :)


Wieso sollte ein Mod den Thread hier schließen wollen? :?

19

25.01.2010, 21:11

Kenne das so von anderen Foren ... Da scheinen manche Mods Spaß daran zu haben Threads voreilig zu schließen. :/

20

25.01.2010, 21:12

Tss, vergess die anderen Foren!
Hier spielt die einzig wahre Musik. ;)

Werbeanzeige