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

1

08.06.2015, 21:11

C++ und SFML kleine Frage (Sicherheit)

Abend Community,


Ich habe ne kleine Frage welche mich jetzt schon seit längerem bisschen im Nacken juckt :D

Diese betrifft die Sicherheit eines Clienten, sprich das decompilieren.

Wie wir sicherlich alle wissen ist C# einfach zu decompilieren trotz Quelltextverschleiherung aufgrund der JIT Compilation...
Wie sieht es jetzt aber mit C++ in Verbindung mit SFML aus? Mir ist klar das nichts "sicher" ist...


MFG

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

08.06.2015, 21:16

Das hat mit SFML recht wenig zu tun. Für alle C++ Programme gilt dasselbe. Sie können in Assembler dekompiliert werden. Ist an sich schon eine gewisse Hürde. Wer's härter will, der jagt einen Executable-Packer drüber.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

08.06.2015, 21:19

Ja schon klar....
Aber wenn man jetzt in ein C++ Projekt SFML einbindet? Verändert das nichts oder schon? Also wäre es möglich vom Sicherheitstechnischen einen Clienten auch mit C++ in Verbindung mit SFML zu kreieren?

4

09.06.2015, 01:18

Hallo,

das ist eine merkwürdige Frage. Zu erst einmal, Sicher ist nichts. Das sieht man ja an den relativ fruchtlosen Versuchen der Spieleindustrie. Die versuchen ja schon seit Jahren das unerwünschte kopieren ihrer Software zu verhindern.

Was möchtest du eigentlich erreichen? Willst du dein Programm vor unerlaubten kopieren schützen, soll keiner deinen Quellcode nachvollziehen können oder willst du so was wie kryptographische Sicherheit einbauen?

Grüße

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

09.06.2015, 06:27

Ja schon klar....
Aber wenn man jetzt in ein C++ Projekt SFML einbindet? Verändert das nichts oder schon? Also wäre es möglich vom Sicherheitstechnischen einen Clienten auch mit C++ in Verbindung mit SFML zu kreieren?
Wie ich schon sagte, das ist von SFML vollständig unabhängig.

Zudem machst Du Dir hier vermutlich Gedanken um Dinge, die für Dich niemals relevant sein werden. Keiner wird versuchen Dein Spiel zu dekompilieren. Wenn Du Pech hast, spielen es nur eine Hand voll Leute jemals. Mit Glück spielen es 100 Leute.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

6

09.06.2015, 08:44

Die einzig sichere Methode, dass niemand deinen Quellcode reproduzieren/nachvollziehen kann - außer dir selbst - ist es, dein Spiel auf einem Notebook/Netbook zu entwickeln, das ausschließlich im Akku-Betrieb läuft, nicht mit einem Ethernet-Kabel verbunden ist, sich in einem vor Funkwellen im Wi-Fi-Frequenzbereich abgeschirmten Raum befindet, und niemals mit Wechseldatenträgern verbunden wird, die auch an andere Geräte angeschlossen werden/wurden. Nicht zu vergessen darf dies auch nur der einzige Rechner sein, auf dem dein Spiel je gespielt wird.

Oder um es anders zu sagen:
Der durchschnittliche Spieler, und das sind die meisten, wird nichts unternehmen, um dein Spiel zu dekompillieren. Sei es aus Unwissen, Unfähigkeit, oder einfach aus Desinteresse. (Vor allem Letzteres.) Und wer es tun möchte, und das kommt sehr, sehr, sehr, sehr selten vor, der findet eh' immer einen Weg. Konzentrier dich also auf Wichtigeres: Das Spiel an sich.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

Werbeanzeige