Wert einer Konstanten während Kompilierung mit Zufallszahl belegen
-
Ist es möglich, während der Kompilierung den Wert einer Konstanten zufällig zu wählen?
Ich möchte mir einen privaten Schlüssel erzeugen, den ich verwenden kann, um zu überprüfen, ob eine Datei mit dem von mir kompilierten und somit unveränderten Programm erzeugt wurde. Dies ist nötig, weil ich den Quelltext veröffenlichen will, aber Highscores in meinem Spiel mit manipulierten Versionen nicht gültig sein sollen.Alternativ müsste ich eben den privaten Schlüssel selbst wählen, aber aus dem veröffentlichten Quelltext entfernen.
-
Das ist prinzipiell möglich (nicht direkt mit den Mitteln der Sprache C++, aber durch ein kleines Script beim Compilieren). Aber völlig sinnlos. Der Hacker lacht sich darüber tot und liest den "richtigen" Schlüssel aus dem von dir veröffentlichten Programm.
Du kannst Daten die beim Anwender liegen prinzipiell nicht vor Manipulation schützen. Das versucht die Kopierschutzindustrie schon seit Jahrzehnten erfolglos. Man kann es nur schwerer machen, so dass es sich vielleicht für den Hacker nicht lohnt (was dann aber auch wieder eine Herausforderung für den Hacker ist, wodurch es sich doch wieder lohnt). Alles was du dir privat ausdenken kannst ist jedenfalls kein Hindernis für jemanden, der ohnehin schon vor hat, dein Programm zu manipulieren. Also kannst du es eigentlich auch gleich sein lassen.
-
ok, danke

Mir ist schon klar, dass das kein Hindernis für einen Hacker ist, nur läd offener Quellcode zum herumbasteln ein und zumindest wäre dann ein kleines bisschen Zusatzaufwand nötig

-
Du scheinst das mit dem offenen Quellcode nicht richtig verstanden zu haben :).
Wenn der Quellcode offen ist dann kann ich und auch andere ihn ändern, denk mal drüber nach. Aber auch der offene Quellcode spielt keine entscheidende Rolle, weshalb viele Programmschmieden heute versuchen andere Techniken einzusetzen wie Onlineregistrierung zum Beispiel.
Steck deine Energie lieber in vernünftigen Code, das weiß man vielleicht mehr zu schätzen.PS: Sich Gedanken zu machen ist aber natürlich kein Fehler

-
Das hat auch nicht direkt etwas mit offenem Quellcode zu tun. Der Hacker braucht den Quellcode nicht. Der braucht nur das Programm von dir. Schreib mal ein "Hallo Welt"-Programm und guck dir das Programm in einem Texteditor an. Du wirst sofort sehen, dass das Programm die Zeichenkette "Hallo Welt" enthält. Mit anderen geheimen Vorgängen im Programm ist das nur minimal schwerer. Das gilt sowohl für Zahlenwerte als auch dafür, was das Programm überhaupt tut (d.h. der Programmverlauf an sich). Ein Texteditor reicht zwar nicht mehr direkt, aber es gibt viele andere fertige Werkzeuge, mit denen das geht. Es ist wirklich nicht schwer.
-
SeppJ schrieb:
Es ist wirklich nicht schwer.
Hihi.
Halte ich für etwas übertrieben
-
Senfti schrieb:
Ist es möglich, während der Kompilierung den Wert einer Konstanten zufällig zu wählen?
Nimm einfach __TIME__.