Glocke
Anmeldungsdatum: 1. März 2009
Beiträge: 880
Wohnort: Thüringen
|
Hi, *.pyc und *.pyo sind ja compilierter Python-Bytecode. Soweit ich mittels google rausgefunden habe, lässt sich dieser einfach decompilieren. welche möglichkeiten hätte man ein python-programm oder script davor zu "schützen" bzw. die sache schwieriger zu gestalten? lg
|
Yanneck
Anmeldungsdatum: 25. September 2009
Beiträge: 1216
|
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
Generell: Du kannst keinen Code davor schützen, auch bei andere Sprachen geht das nicht! Code, der lokal ausgeführt wird, kann immer disassembliert werden - zumindest ohne Zusatzhardware.
|
UniXP
Anmeldungsdatum: 10. Juli 2009
Beiträge: 75
|
Es gab doch noch .pyd?
Ich glaube nicht dass sich Binärcode ohne weiteres in für "normalsterbliche" verwendbaren Quellcode zerlegen lässt! mfg, UniXP.
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
UniXP schrieb: Es gab doch noch .pyd?
Meinst Du Module, die mit pyd erstellt wurden?
Ich glaube nicht dass sich Binärcode ohne weiteres in für "normalsterbliche" verwendbaren Quellcode zerlegen lässt!
Was sind denn Normalsterbliche? Zudem kannst Du es bei Verbreitung des Binaries nicht ausschließen, dass dieser in die Hände von Leuten gerät, die das können; oder aber jemand beauftragt jemanden, der es kann 😉
|
UniXP
Anmeldungsdatum: 10. Juli 2009
Beiträge: 75
|
Lysander schrieb: UniXP schrieb: Es gab doch noch .pyd?
Meinst Du Module, die mit pyd erstellt wurden?
Ich glaube nicht dass sich Binärcode ohne weiteres in für "normalsterbliche" verwendbaren Quellcode zerlegen lässt!
Was sind denn Normalsterbliche? Zudem kannst Du es bei Verbreitung des Binaries nicht ausschließen, dass dieser in die Hände von Leuten gerät, die das können; oder aber jemand beauftragt jemanden, der es kann 😉
1.Ich weiss nur, dass ich ein Skript im Pythonordner gefunden habe, dass python Skripte in .pyd konvertiert (kompiliert?), wo der Quellcode nicht mehr (unverschlüsselt) zu lesen war. 2.Ich meine nur, dass er wahrscheinlich keinen Algorithmus für menschliche Intelligenz programmieren wird, für den es sich lohnt das Zeichengewusel auseindanderzudröseln (Ich hoffe ihr versteht was ich meine 😀) mfg UniXP
|
Logander4
Anmeldungsdatum: 12. November 2009
Beiträge: 156
|
Python wurde schon von Anfang an, das ist auch genauso wie mit JavaScript, als Interpretersprache gemacht.
Du kannst in Python Code schreiben, ihn für Otto Normalverbraucher compilieren! Aber für einen Python Entwickler wird es auf immer ein leichtes sein, deinen Code zu entschlüsseln.
Außerdem solltest du ruhig mal gucken, ob dein Code wirklich so private sein muss!
|
UniXP
Anmeldungsdatum: 10. Juli 2009
Beiträge: 75
|
Logander4 schrieb: Außerdem solltest du ruhig mal gucken, ob dein Code wirklich so private sein muss!
That's what i meant 😀
|
Fjunchclick
Anmeldungsdatum: 18. Februar 2010
Beiträge: 550
|
Lysander schrieb: Generell: Du kannst keinen Code davor schützen, auch bei andere Sprachen geht das nicht! Code, der lokal ausgeführt wird, kann immer disassembliert werden - zumindest ohne Zusatzhardware.
Microsoft zum Beispiel lebt davon, dass genau das eben nicht geht. Closed Source und die Geheimhaltung von Programmcode wäre völlig sinnlos, wenn das gehen würde. Auch die Probleme, dass es für manche Hardware keine Linuxtreiber gibt, würden sich sehr schnell aus der Welt schaffen lassen, wenn man Binärcode einfach decompilieren könnte. Windowstreiber nehmen, decompilieren, Code anschauen und für Linux umschreiben.
Leider geht das eben nicht, auch wenn viele das glauben.
|
Red_Radish
Anmeldungsdatum: 7. September 2007
Beiträge: 770
|
Fjunchclick schrieb: Lysander schrieb: Generell: Du kannst keinen Code davor schützen, auch bei andere Sprachen geht das nicht! Code, der lokal ausgeführt wird, kann immer disassembliert werden - zumindest ohne Zusatzhardware.
Microsoft zum Beispiel lebt davon, dass genau das eben nicht geht. Closed Source und die Geheimhaltung von Programmcode wäre völlig sinnlos, wenn das gehen würde.
Microsoft stütz sich vor allem auf Lizenzen, Patente und Co, um ihre Interessen zu sichern.
Den Quelltext zahlreicher Microsoft-Produkte kann man sogar einsehen, wenn man dafür zahlt und einen entsprechenden Vertrag unterschreibt. Ganz so closed sind ihre sourcen gar nicht. Für die meisten Programme ist es in der Regel einfacher, die Funktionalität selbst zu programmieren als mit dem zu arbeiten, was der Decompilierer ausspuckt; daher macht das keiner. Bei anspruchsvollen Algorithmen (allgemein bekannte Beispiele sind Algorithmen für die Audio-/Videokodierung), hinter den jahrelange Forschungsarbeit steckt, sieht es anders aus. Hier käme man mit disassemblieren schneller voran. Aber das würde einem nichts nützen. Wegen der ganzen Patente und Co., kann man das Ergebnis sowieso nicht erfolgreich vertreiben. Ich vermute mal, dass die Programme von Glocke so trivial nachzuprogrammieren sind, dass ich keine Gedanken darauf verschwenden würde, wie man ein reverse-engineering verhindert.
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
Fjunchclick schrieb: Lysander schrieb: Generell: Du kannst keinen Code davor schützen, auch bei andere Sprachen geht das nicht! Code, der lokal ausgeführt wird, kann immer disassembliert werden - zumindest ohne Zusatzhardware.
Microsoft zum Beispiel lebt davon, dass genau das eben nicht geht. Closed Source und die Geheimhaltung von Programmcode wäre völlig sinnlos, wenn das gehen würde.
Es geht aber 😉 Ich habe nie behauptet, dass das für so etwas komplexes wie ein OS sinnvoll funktioniert. Wie Red Radish schon schrieb: Für die meisten Programme ist es in der Regel einfacher, die Funktionalität selbst zu programmieren als mit dem zu arbeiten, was der Decompilierer ausspuckt; daher macht das keiner.
Auch die Probleme, dass es für manche Hardware keine Linuxtreiber gibt, würden sich sehr schnell aus der Welt schaffen lassen, wenn man Binärcode einfach decompilieren könnte. Windowstreiber nehmen, decompilieren, Code anschauen und für Linux umschreiben.
Ob Du es glaubst oder nicht, es geht! Aber: Lizenzen bzw. auch Gesetze verbieten das, insbesondere wenn man damit eigenen Code erstellt bzw. davon ableitet!
Leider geht das eben nicht, auch wenn viele das glauben.
Auch wenn Du es nicht wahrhaben willst: es geht! Wie nun mehrfach beschrieben gibt es Gründe, weshalb Kompilate nicht Tag täglich auseinander genommen werden. Dennoch ist es eben möglich und durchaus mit guten Ergebnissen; bspw. kann man bei Java-Programmen durchaus recht gut lesbaren Code durchs disassemblieren bekommen. Ohne Verschlüsselungshardware kannst Du nicht verhindern, dass sich jemand Deinen Code anguckt und ggf. durch reverse engineering Erkenntnisse gewinnt.
|
DrScott
Ehemalige
Anmeldungsdatum: 7. Juli 2005
Beiträge: 6018
Wohnort: Nürnberg
|
Fjunchclick schrieb: Microsoft zum Beispiel lebt davon, dass genau das eben nicht geht. Closed Source und die Geheimhaltung von Programmcode wäre völlig sinnlos, wenn das gehen würde.
Natürlich geht es. Was der Computer abarbeiten kann, kann auch ein Mensch abarbeiten. So einfach ist das. Für gewöhnlich sind Computer ja noch dümmer als Menschen... ☺
Eine andere Frage ist, wie aufwendig das ganze ist. Von daher ist es immer angenehmer, wenn man den SourceCode besitzt. "ClosedSource" bedeutet erst einmal nur, dass andere nicht den Einblick in den programmiererfreundlichen Quellcode bekommen. Was man unter "OpenSource" versteht, hängt ein bisschen von der Definition ab. Die einen verstehen darunter, dass man eben Einblick in den Code nehmen kann - mehr aber nicht. Andere verstehen darunter bereits "freien Code" - Code, der also nicht nur eingesehen, sondern sogar modifiziert und weitergegeben werden darf.
|
Fjunchclick
Anmeldungsdatum: 18. Februar 2010
Beiträge: 550
|
Schon mal was von der Geschichte gehört, dass Microsoft behauptet, dass Linux gegen mehrere hundert MS-Patente verstößt? Sie erheben aber keine Klage, weil sie dann den Windwos-Quelltext offenlegen müssten, um dies zu beweisen. Und das machen sie auf gar keinen Fall, weil der geheime Quellcode die Basis des gesamten Unternehmens ist. Und wenn der bekannt werden würde, wäre das wahrscheinlich das Ende des Microsoft-Quasi-Monopols. Da schützen Lizenzen überhaupt nicht. Es soll nämlich tatsächlich schon vorgekommen sein, dass sich jemand nicht an die jeweiligen Lizenzen hält. Komisch eigentlich, dass es noch kein Windows "Made in China" gibt, wo die disassemblierung doch so einfach wäre. Aber stimmt ja, ist ja verboten. 😉
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
Fjunchclick schrieb: Schon mal was von der Geschichte gehört, dass Microsoft behauptet, dass Linux gegen mehrere hundert MS-Patente verstößt? Sie erheben aber keine Klage, weil sie dann den Windwos-Quelltext offenlegen müssten, um dies zu beweisen. Und das machen sie auf gar keinen Fall, weil der geheime Quellcode die Basis des gesamten Unternehmens ist. Und wenn der bekannt werden würde, wäre das wahrscheinlich das Ende des Microsoft-Quasi-Monopols. Da schützen Lizenzen überhaupt nicht. Es soll nämlich tatsächlich schon vorgekommen sein, dass sich jemand nicht an die jeweiligen Lizenzen hält. Komisch eigentlich, dass es noch kein Windows "Made in China" gibt, wo die disassemblierung doch so einfach wäre. Aber stimmt ja, ist ja verboten. 😉
Es hat doch niemand behauptet, dass das immer so einfach ist! Bei einem Trumm von Software a la Windows sogar bestimmt nicht. Und wieso sollte jemand den Quellcode von Windows besonders interessant finden? Da steht sicher nicht viel innovatives drin 😉 Wichtiger ist es doch, Lizenzkeys zu cracken oder die Prüfung eben jener Schlüssel abzuschalten. Und so etwas passiert tatsächlich auch mit Hilfe von Reverse Engineering!
|
Fjunchclick
Anmeldungsdatum: 18. Februar 2010
Beiträge: 550
|
Natürlich. Es gab hier schon mal einen Thread darüber, wo einige Leute auch erklärt haben, wo die Probleme sind. Zum Beispiel können Labels, Bezeichner, Funktions- und Klassennamen eben nicht disassembliert werden. Alleine deswegen dürfte so ein Versuch schon scheitern. Außerdem wird Programmcode in der Regel vom Compiler verändert um in zu optimieren. Auch das dürfte sich nur sehr schwer so rückgängig machen lassen, dass etws verständliches dabei herauskommt. Viele glauben aber, dass man einfach einen Disassembler bei chip.de herunterlädt und dann mal eben Photoshop recompiliert. Ich wollte nur darauf hinweisen, dass das eben auf keinen Fall so einfach ist, sondern so gut wie unmöglich ist. Theoretisch geht das vielleicht, aber theoretisch ist es auch ganz einfach aus einer Tüte Paniermehl wieder ein Brötchen zu machen. Man muss nur die Teile wieder richtig zusammensetzen. 😀
|