Seite 1 von 1

Programm vor Hex-Editor Änderungen schützen

Verfasst: Dienstag 10. Juni 2008, 23:25
von Requester
Ich hab da mal wieder eine Frage. Irgend so ein Witzbold hat mit einem Hex-Editor den Programm Namen und die Copyright Hinweise entfernt. Nach kurzem testen hab ich gemerkt das man kinderleicht mit dem Hex-Editor sämtliche Texte innerhalb meines Programmes ändern kann.

Meine Idee um das zu schützen wären Programm interne Abfragen. Hat da jemand eine Idee was man Abfragen könnte bzw. woran man erkennt das da jemand mit dem Hex-Editor rumgefummelt hat?

Von Java kenn ich das mit einer Checksum, sowas müsste bei Python ja eigentlich auch gehen.

Danke schonmal und bitte jetzt keine Diskussionen über "Warum ich Open-Source arbeiten soll...".

Gruß

Requester

Re: Programm vor Hex-Editor Änderungen schützen

Verfasst: Dienstag 10. Juni 2008, 23:33
von Leonidas
Requester hat geschrieben:Von Java kenn ich das mit einer Checksum, sowas müsste bei Python ja eigentlich auch gehen.
Geht doch auch, ich sehe dein Problem nicht. Aber auch Checksummen kann man umgehen indem man entweder die Checksumme mitändert oder einfach den Check deaktiviert.
Requester hat geschrieben:Danke schonmal und bitte jetzt keine Diskussionen über "Warum ich Open-Source arbeiten soll...".
Wäre aber sicherlich keine schlechte Idee.

Re: Programm vor Hex-Editor Änderungen schützen

Verfasst: Mittwoch 11. Juni 2008, 13:08
von mkesper
Requester hat geschrieben:Danke schonmal und bitte jetzt keine Diskussionen über "Warum ich Open-Source arbeiten soll...".
Auch beim Weiterverarbeiten von Freier Software ist es ein Verstoß gegen das Copyright, einfach den Hinweis auf Autoren zu löschen. Einzige Ausnahme sind Werke, die tatsächlich unter Public Domain stehen.

Re: Programm vor Hex-Editor Änderungen schützen

Verfasst: Mittwoch 11. Juni 2008, 15:28
von lunar
Requester hat geschrieben:Ich hab da mal wieder eine Frage. Irgend so ein Witzbold hat mit einem Hex-Editor den Programm Namen und die Copyright Hinweise entfernt. Nach kurzem testen hab ich gemerkt das man kinderleicht mit dem Hex-Editor sämtliche Texte innerhalb meines Programmes ändern kann.
Ist das ein py2exe Script oder ähnliches?
Meine Idee um das zu schützen wären Programm interne Abfragen. Hat da jemand eine Idee was man Abfragen könnte bzw. woran man erkennt das da jemand mit dem Hex-Editor rumgefummelt hat?
Gar nicht. Wenn man die Strings verändern kann, dann kann man auch die Logik zur Überprüfung verändern ...
Von Java kenn ich das mit einer Checksum, sowas müsste bei Python ja eigentlich auch gehen.
Nein, es geht noch nicht mal bei Java. Mit den richtigen Tools findet man auch raus, wie der Hash überprüft wird und wo er abgelegt ist. Folglich kann man auch den Hash fälschen.
Danke schonmal und bitte jetzt keine Diskussionen über "Warum ich Open-Source arbeiten soll...".
Wenn dir dein geistiges Eigentum so viel Wert ist, dann geh für Gericht ...

Verfasst: Mittwoch 11. Juni 2008, 16:20
von HWK
Natürlich haben alle Recht: Gegen einen ausdauernden Cracker wird man Manipulationen eines Programms nicht verhindern können. Man kann aber einem Crack-Kiddie, das nur mit einem Editor Text ändern kann, das Leben etwas erschweren. Wie Leonidas schon richtig bemerkte, kann man das in Python auch mit Checksums machen. Z.B. könnte man beim Programmablauf eine vorher vom Originaltext berechnete CRC, MD5 o.ä. überprüfen:

Code: Alles auswählen

import binascii
text = 'Testtext'
if binascii.crc32(text) != -152371028:
    print 'Gepatcht'
else:
    print 'Original'
MfG
HWK

Re: Programm vor Hex-Editor Änderungen schützen

Verfasst: Mittwoch 11. Juni 2008, 16:23
von lunar
mkallas hat geschrieben:
Requester hat geschrieben:Danke schonmal und bitte jetzt keine Diskussionen über "Warum ich Open-Source arbeiten soll...".
Auch beim Weiterverarbeiten von Freier Software ist es ein Verstoß gegen das Copyright, einfach den Hinweis auf Autoren zu löschen. Einzige Ausnahme sind Werke, die tatsächlich unter Public Domain stehen.
Oder unter der WTFPL ;)

Verfasst: Samstag 14. Juni 2008, 11:00
von sma
Wenn du nicht möchtest, dass dein Programm verändert wird, führe es nur in einer (relativ) sicheren Umgebung (Stichwort trusted computing architecture) aus wie z.B. der XBox 360, PS3 oder einem Handy mit OMA DRM 2.x ;) Derartige Plattformen lassen normale Anwender gar nicht auf den Programmcode zugreifen und er wird in der Regel nur verschlüsselt übertragen.

Eine andere Möglichkeit wäre, wenn sich das Programm beim Start selbst prüft, indem etwa eine kryptografisch sichere Prüfsumme (MD5, SHA1, ...) übermittelt wird. Leider kann ein böser Mensch auch diesen Selbsttest genauso verändern, wie er Texte verändern kann.

Selbst Skype, welches sich mit mehreren Schichten wirklich extrem trickreich gegen Veränderungen zu schützen versucht, damit niemand ermitteln kann, wie das Protokoll funktioniert, wurde letztlich überwunden.

Einen besseren Schutz bietet "trusted hardware", aber auch bei der XBox 360 (genau wie bei deren Vorgänger) hat's letztlich nicht 100% geholfen. Wie der Stand bei der PS3 ist, kann ich nicht sagen. Bei Handys mag einfach das Interesse fehlen. Der OMA DRM 2.0 Standard ist allerdings so kompliziert, dass ich sehr stark vermute, dass es da die üblichen Buffer-Overruns und andere Fehler in den jeweiligen Modellen gibt, sodass man da auch an die unverschlüsselten Inhalte irgendwie kommen kann. Letztlich müsste der Schutz bis zur SIM-Karte gehen, was glaube ich nicht alle Modelle haben sondern ihn nur in Software realisieren.

Wie auch immer, zwei-drei im Code versteckte Tests auf Veränderungen inklusive eines "Honey pots", also einer Stelle, die zur Veränderung einlädt, aber wenn man's tut, dies erkannt wird, könnten den normalen Hacker schon abhalten.

Stefan

Verfasst: Samstag 14. Juni 2008, 11:11
von lunar
sma hat geschrieben:Wie auch immer, zwei-drei im Code versteckte Tests auf Veränderungen inklusive eines "Honey pots", also einer Stelle, die zur Veränderung einlädt, aber wenn man's tut, dies erkannt wird, könnten den normalen Hacker schon abhalten.
Höchstens den normalen Volltrottel, der sich daran versucht. Für einen erfahrenen Cracker reicht das nicht, das haben die Entwickler von Kopierschutz- und Keyverifikationsalgorithmen bei Spielen doch schon feststellen müssen ;)

Der beste Schutz, den das Programm des OP wohl genießt, ist die fehlende Relation von Aufwand und Erfolg: Ich bezweifele mal, dass das Programm des OP so sensationell ist, dass das cracken sich lohnen würde ... nichts für ungut, Requester ;)

Verfasst: Sonntag 15. Juni 2008, 11:07
von sma
Genau. Der beste Kopierschutz ist immer noch der, ein so schlechtes Produkt zu bauen, was einfach keiner haben will :)

Der zweitbeste ist aber, und das wollte ich in (zu) vielen Worten sagen, ist die Hardware zu kontrollieren. Alles andere ist ein Wettrüsten.

Stefan

Verfasst: Sonntag 15. Juni 2008, 15:13
von mitsuhiko
sma hat geschrieben:Genau. Der beste Kopierschutz ist immer noch der, ein so schlechtes Produkt zu bauen, was einfach keiner haben will :)
Joa. Das funktioniert.
Der zweitbeste ist aber, und das wollte ich in (zu) vielen Worten sagen, ist die Hardware zu kontrollieren. Alles andere ist ein Wettrüsten.
Da musst du aber die komplette Hardware kontrollieren. Diese Dongles verärgern nur die User.

Oder du machst einfach ein gutes Produkt. Dann ist der Rest schon egal.

Verfasst: Sonntag 15. Juni 2008, 15:42
von birkenfeld
mitsuhiko hat geschrieben:
Der zweitbeste ist aber, und das wollte ich in (zu) vielen Worten sagen, ist die Hardware zu kontrollieren. Alles andere ist ein Wettrüsten.
Da musst du aber die komplette Hardware kontrollieren. Diese Dongles verärgern nur die User.
Och, das ist den Usern egal -- gerade von kommerzieller Software lassen sie sich oft mit einer geradezu masochistisch-fatalistischen Einstellung verärgern (es kostet Geld, also wirds schon richtig so sein.)

Verfasst: Sonntag 15. Juni 2008, 16:05
von lunar
mitsuhiko hat geschrieben:
Der zweitbeste ist aber, und das wollte ich in (zu) vielen Worten sagen, ist die Hardware zu kontrollieren. Alles andere ist ein Wettrüsten.
Da musst du aber die komplette Hardware kontrollieren. Diese Dongles verärgern nur die User.
Frag doch mal die Nutzer von Xbox oder Wii. Denen ist völlig egal, dass deren Systeme nichts anderes ausführen können als offiziell signierten Code, solange sie happy mit ihren Controllern in der Luft rumwedeln können ;)

Verfasst: Sonntag 15. Juni 2008, 16:23
von Leonidas
lunar hat geschrieben:Denen ist völlig egal, dass deren Systeme nichts anderes ausführen können als offiziell signierten Code, solange sie happy mit ihren Controllern in der Luft rumwedeln können ;)
Grad Wii-Hacking war für die Leute die sich damit beschäftigt haben recht trivial, da sie im großen und ganzen die gleichen Mechanismen genutzt haben wie der Gamecube. Da gabs eine Präsentation dazu auf dem 23 oder 24C3, die war echt eines der Highlights.