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
Programm vor Hex-Editor Änderungen schützen
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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:Von Java kenn ich das mit einer Checksum, sowas müsste bei Python ja eigentlich auch gehen.
Wäre aber sicherlich keine schlechte Idee.Requester hat geschrieben:Danke schonmal und bitte jetzt keine Diskussionen über "Warum ich Open-Source arbeiten soll...".
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- mkesper
- User
- Beiträge: 919
- Registriert: Montag 20. November 2006, 15:48
- Wohnort: formerly known as mkallas
- Kontaktdaten:
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.Requester hat geschrieben:Danke schonmal und bitte jetzt keine Diskussionen über "Warum ich Open-Source arbeiten soll...".
Ist das ein py2exe Script oder ähnliches?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.
Gar nicht. Wenn man die Strings verändern kann, dann kann man auch die Logik zur Überprüfung verändern ...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?
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.Von Java kenn ich das mit einer Checksum, sowas müsste bei Python ja eigentlich auch gehen.
Wenn dir dein geistiges Eigentum so viel Wert ist, dann geh für Gericht ...Danke schonmal und bitte jetzt keine Diskussionen über "Warum ich Open-Source arbeiten soll...".
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:MfG
HWK
Code: Alles auswählen
import binascii
text = 'Testtext'
if binascii.crc32(text) != -152371028:
print 'Gepatcht'
else:
print 'Original'
HWK
Oder unter der WTFPLmkallas hat geschrieben: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.Requester hat geschrieben:Danke schonmal und bitte jetzt keine Diskussionen über "Warum ich Open-Source arbeiten soll...".
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
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
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üssensma 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.
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
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
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
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Joa. Das funktioniert.sma hat geschrieben:Genau. Der beste Kopierschutz ist immer noch der, ein so schlechtes Produkt zu bauen, was einfach keiner haben will
Da musst du aber die komplette Hardware kontrollieren. Diese Dongles verärgern nur die User.Der zweitbeste ist aber, und das wollte ich in (zu) vielen Worten sagen, ist die Hardware zu kontrollieren. Alles andere ist ein Wettrüsten.
Oder du machst einfach ein gutes Produkt. Dann ist der Rest schon egal.
TUFKAB – the user formerly known as blackbird
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
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.)mitsuhiko hat geschrieben:Da musst du aber die komplette Hardware kontrollieren. Diese Dongles verärgern nur die User.Der zweitbeste ist aber, und das wollte ich in (zu) vielen Worten sagen, ist die Hardware zu kontrollieren. Alles andere ist ein Wettrüsten.
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önnenmitsuhiko hat geschrieben:Da musst du aber die komplette Hardware kontrollieren. Diese Dongles verärgern nur die User.Der zweitbeste ist aber, und das wollte ich in (zu) vielen Worten sagen, ist die Hardware zu kontrollieren. Alles andere ist ein Wettrüsten.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice