Wie kann man Pythonprogramme starten, ohne Python zu install

Fragen zu Tkinter.
Himalius
User
Beiträge: 10
Registriert: Freitag 2. Mai 2008, 15:34
Wohnort: Irgendwo im Nirgendwo
Kontaktdaten:

Wie kann man Pythonprogramme starten, ohne Python zu install

Beitragvon Himalius » Sonntag 4. Mai 2008, 11:36

wie schon gesagt, Wie kann man Pythonprogramme starten, ohne Python zu installieren?
wenn einer darauf eine antwort weiß, bitte antworten.
freue mich auf hilfe und bedanke mich als im voraus.

MfG Himalius
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Sonntag 4. Mai 2008, 12:45

Bambie
User
Beiträge: 15
Registriert: Mittwoch 26. März 2008, 01:09

Beitragvon Bambie » Sonntag 4. Mai 2008, 14:13

Dazu habe ich noch zwei Fragen:
Gibts eigentlich dabei eine Möglichkeiten, soetwas in eine Datei zu packen? Also, dass man anstatt die ganzen DLL-Dateien und sowas in nem Ordner, alles in einer kleinen kompakten Datei?

Und kann man diese Exen wieder decompilieren?

MFG Bambie
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Beitragvon Sr4l » Sonntag 4. Mai 2008, 14:36

Bambie hat geschrieben:Dazu habe ich noch zwei Fragen:
Gibts eigentlich dabei eine Möglichkeiten, soetwas in eine Datei zu packen?

Ja, siehe im Beispiel Ordner von py2exe singleexecutable.
Bambie hat geschrieben:Und kann man diese Exen wieder decompilieren?

Ich glaube py2exe nutzt die Bytecode Datein, also ist der Quellcode nicht sofort heraus zu bekommen. Bin mir aber nicht sicher ob py2exe nicht auch die py Datein einsetzt.
Himalius
User
Beiträge: 10
Registriert: Freitag 2. Mai 2008, 15:34
Wohnort: Irgendwo im Nirgendwo
Kontaktdaten:

Beitragvon Himalius » Sonntag 4. Mai 2008, 16:55

ok, danke erst ma.
ich werd ma reinschauen.
Himalius
User
Beiträge: 10
Registriert: Freitag 2. Mai 2008, 15:34
Wohnort: Irgendwo im Nirgendwo
Kontaktdaten:

Beitragvon Himalius » Sonntag 4. Mai 2008, 17:07

ich hab das ma ausprobiert, aber es klappt nitt.
könnt sein, dass ich das falsch verstanden hab.
könnts mir vllt einer so erklären?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Sonntag 4. Mai 2008, 19:12

Für meinen Geschmack machst du es dir zu einfach und lässt - nicht nur in diesem Thread - andere die Arbeit machen, die du dir auch selbst machen könntest. Ist dann eben etwas anstrengender für dich.

Wirf z.B. mal einen Blick in die letzten Threads unter "Allgemeines" und du solltest fündig werden.
Himalius
User
Beiträge: 10
Registriert: Freitag 2. Mai 2008, 15:34
Wohnort: Irgendwo im Nirgendwo
Kontaktdaten:

Beitragvon Himalius » Montag 5. Mai 2008, 19:44

achso, ok mach ich.
tschuldige das ich noch mal nachgefragt hab, aber ich kann leider gottes nich so gut englisch, ausserdem klappt das nitt bei mir, wenn ich das so machen, wie ich das verstanden hab.

danke nochmals
Himalius
lunar

Beitragvon lunar » Montag 5. Mai 2008, 21:02

Sr4l hat geschrieben:
Bambie hat geschrieben:Und kann man diese Exen wieder decompilieren?

Ich glaube py2exe nutzt die Bytecode Datein, also ist der Quellcode nicht sofort heraus zu bekommen. Bin mir aber nicht sicher ob py2exe nicht auch die py Datein einsetzt.

Der Ehrlichkeit halber möchte ich an dieser Stelle allerdings darauf hinweisen, dass das Rückübersetzen von Python Bytecode nur ein unwesentliches Hindernis auf dem Weg zur Gewinnung des Quellcodes darstellt.

Man sollte nicht der Fehleinschätzung unterliegen, Bytecode wäre ähnlich nativem Code, wie in beispielsweise der gcc erzeugt. Bytecode bewegt sich auf wesentlich höherem Abstraktionsniveau und ist in der Regel mehr oder weniger trivial rück zu übersetzen, während man nativen Code allenfalls disassemblieren, allerdings kaum rückübersetzen kann.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Beitragvon Sr4l » Montag 5. Mai 2008, 23:39

lunar hat geschrieben:
Sr4l hat geschrieben:
Bambie hat geschrieben:Und kann man diese Exen wieder decompilieren?

Ich glaube py2exe nutzt die Bytecode Datein, also ist der Quellcode nicht sofort heraus zu bekommen. Bin mir aber nicht sicher ob py2exe nicht auch die py Datein einsetzt.

Der Ehrlichkeit halber möchte ich an dieser Stelle allerdings darauf hinweisen, dass das Rückübersetzen von Python Bytecode nur ein unwesentliches Hindernis auf dem Weg zur Gewinnung des Quellcodes darstellt.

Man sollte nicht der Fehleinschätzung unterliegen, Bytecode wäre ähnlich nativem Code, wie in beispielsweise der gcc erzeugt. Bytecode bewegt sich auf wesentlich höherem Abstraktionsniveau und ist in der Regel mehr oder weniger trivial rück zu übersetzen, während man nativen Code allenfalls disassemblieren, allerdings kaum rückübersetzen kann.

Es gab mal eine Seite die eine Übersetzung von pyc zu py im "Angebot" hatte, das sollte für Python 2.3 funktionieren. Ich habe es aber nie testen können, mit meinen Python 2.4 pyc's hat es nicht funktioniert und ich war zu faul Python 2.3 zu installieren :-).
AlArenal
User
Beiträge: 23
Registriert: Sonntag 27. April 2008, 00:53
Wohnort: Iserlohn
Kontaktdaten:

Beitragvon AlArenal » Dienstag 6. Mai 2008, 00:06

Dererlei Fragen und Diskussionen gibt es seit jeher auch bei Java und mittlerweile sicher auch in der .NET Welt (so man nicht nativ kompiliert). M.E. machen sich in der Regel die falschen Leute Gedanken darüber, wie sie ihren Code schützen können und vergessen dabei mal zu überlegen, ob ihr Produkt nun so bahnbrechend interessant ist, sich als Cracker die Arbeit zu machen.

Mit dererlei Maßnahmen investiert man wertvolle Enticklungszeit an der falschen Stelle. Wenn es wirklich einer auf den Code abgesehen hat, findet er einen Weg. Nun kann ich mir überlegen ob es den Aufwand wert ist für diesen unwahrscheinlichen Fall Maßnahmen zu treffen, die am Ende eh nicht greifen, oder ob ich einfach damit lebe und die Zeit lieber verwende das Produkt für die Benutzer (das sind die, die wirklich mit dem Ding arbeiten und denen es was bedeutet) komfortabler zu machen.
"Ein schwarzes Loch hat keine Haare" - John A. Wheeler
Benutzeravatar
Hannes-Spz
User
Beiträge: 123
Registriert: Sonntag 7. August 2005, 22:42

Beitragvon Hannes-Spz » Samstag 10. Mai 2008, 15:22

richtig!
und zudem:
wer ein programm schreiben will, was man nicht (ohne weiteres) zurückkompilieren kann, der sollte sich dafür keine opensouresprache aussuchen, sondern sich ein cpp- oder assemblerbuch, ein wenig zeit und einen netten tee dazu nehmen. aller anfang ist schwer, aber wer sicherheit will..........
[size=85]"Unsere Situation ist immer die eines schwarzen Mannes der in einem schwarzen Keller einen schwarzen Hut sucht, den es vielleicht gar nicht gibt." Sir Karl R. Popper[/size]
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Samstag 10. Mai 2008, 16:25

Hannes-Spz hat geschrieben:richtig!
und zudem:
wer ein programm schreiben will, was man nicht (ohne weiteres) zurückkompilieren kann, der sollte sich dafür keine opensouresprache aussuchen, sondern sich ein cpp- oder assemblerbuch, ein wenig zeit und einen netten tee dazu nehmen. aller anfang ist schwer, aber wer sicherheit will..........
Wie kann denn eine *Sprache* Opensource sein? Und weshalb soll das C++ dann nicht sein?

Und seit wann ist C++/ASM Code sicher vor den Augen anderer?

Ansonsten kann ich nur sagen, der Aufwand die Funktionalität eines Programmes zu verstecken wollen macht nur Sinn wenn das Programm nicht im sinne des Benutzers handelt - Viren, DRM, ...
My Website - 29a.ch
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Benutzeravatar
Hannes-Spz
User
Beiträge: 123
Registriert: Sonntag 7. August 2005, 22:42

Beitragvon Hannes-Spz » Samstag 10. Mai 2008, 19:35

Wie kann denn eine *Sprache* Opensource sein?

die sprache selbst ist weniger opensource - da der quellcode nur teilweise ohne weiteres direkt vom endbenutzer auszulesen ist.
das ist auch mein kriterium für opensource (hauptsächlich)
demnach kann man "opensourcesprache" als neologismus betrachten, der verdeutlicht, dass mit dieser sprache nahezu nur opensourceprojekte erstellt werden.

Und weshalb soll das C++ dann nicht sein?

weil c++ eine kompilersprache ist.
dabei wird der code in maschinensprache übersetzt, die man maximal disassemblieren kann, demnach ist das resultat aber in assembler (esseidenn mit extratools aber davon sehen wir jetzt mal ab).
für genaueres musst du nachgooglen.
jedenfalls: wenn du ein projekt zu einer exe kompilierst, dann hast du bytecode - er ist also nicht mehr "open", da man ihn nicht ohne weiteres auslesen und umschreiben kann
Und seit wann ist C++/ASM Code sicher vor den Augen anderer?

C++code ist natürlich einsehbar - aber wie schon geschrieben, geben viele ihren c++code nur in exe, dll, obj oä weiter - also in bytecode und die disassemblierung und der asmcode hat den nachteil, dass nahezu niemand asm kann (nicht ausreichend)
deshalb können nur zuwenige damit etwas anfangen (ich gehe immer davon aus, dass man das programm umschreiben will ! )

wenn das Programm nicht im sinne des Benutzers handelt - Viren, DRM,...

naja - es gibt ja auch noch die beliebte softwarepiraterie bzw. (was du wahrscheinlich schon inbegriffen hast) software, die zu wenige tools vereinigt und man sie erweitern möchte - oder zum beispiel die kopierschutzsicherung eines brennprogramms - oä - ka - wann macht man ein programm sicher? wenn es wertvoll ist - man also evtl dafür geld bekommt, wenn man aber den code hat, könnte man die 30 minuten frist ausstellen.... sowas in der richtung meine ich (nicht ZWINGEND cracken, sondern auch umstellen von komponenten und algorithmen herausfinden, weil sie als gut erscheinen)

wenn du damit auf etwas anderes abgezielt hast oder ich was falsches geschrieben habe - ich bin offen für neues

danke im voraus?
lg hannes
[size=85]"Unsere Situation ist immer die eines schwarzen Mannes der in einem schwarzen Keller einen schwarzen Hut sucht, den es vielleicht gar nicht gibt." Sir Karl R. Popper[/size]
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Re: Wie kann man Pythonprogramme starten, ohne Python zu ins

Beitragvon sma » Samstag 10. Mai 2008, 19:54

Himalius hat geschrieben:wie schon gesagt, Wie kann man Pythonprogramme starten, ohne Python zu installieren?

Mir ist gerade danach, den Mac-User heraushängen zu lassen und daher zu antworten: Indem man kein Windows sondern OS/X 10.5.2 benutzt. Da ist Python 2.5.1 nämlich vorinstalliert ;) Macht vieles einfacher. Bei Ubuntu Linux wäre es übrigens ähnlich. Offensichtlich nur ein Problem der Windows-Minderheit :)

Auch das mit der einen Datei löst OS X sehr elegant. Anwendungen sind eigentlich Verzeichnisse, werden aber vom File Explorer des Mac (Finder genannt) immer wie eine Anwendung dargestellt und können daher einfach verschoben oder kopiert werden. Irgendwas zu kompilieren ist daher nicht nötig.

Einen Schutz gegen neugierige Blicke bietet das natürlich nicht, aber das es bei Python prinzipbedingt nicht möglich ist, das Wiederherstellen eines äquivalenten Quelltextes zu verhindern, wurde schon gesagt. Wenn man eh den eigenen Python-Interpreter mitliefern will, könnte es helfen, die Bytecodes zu permutieren, sodass man erst durch eine Häufigkeitsanalyse herausfinden kann, was wohl was ist und nicht einfach nachgucken kann. Auch könnte man das marshal-Format ändern. Um dann herauszufinden, wie das funktioniert, müsste man erst weit genug in den speziellen Python-Interpreter hineindebuggen. Oh, bei dieser Gelegenheit sollte man natürlich auch verhindern, dass man in der interaktiven Kommandozeile Code ausführen kann, denn andernfalls kann ich eine "known plaintext"-Attacke fahren und gucken, wie bestimmter Quelltext übersetzt wird. Also auf `exec`und `eval` verzichten und den Compiler ausbauen. Ob derartige Umbaumaßnahmen am Interpreter sich lohnen... muss jeder selbst wissen. Für ein Java-Programm hatte ich mal über entsprechende Strategien nachgedacht, der Aufwand rechtfertigte dann jedoch nicht die erwarteten Verluste durch Raubkopien.

Übrigens, wenn man nur will, kann man auch nativen Code recht gut zurückübersetzen. Anfang der 90er hatte ich Teile des Amiga-ROMs von 68k Assembler in C zurückübersetzt, weil ich wissen wollte, das UI funktionierte. Der C-Compiler war offenbar recht primitiv, man konnte Muster erkennen, die sich gut zurückübersetzen liesen.

Oh, und um eine kleine Lanze für DRM zu brechen: Wenn man's als "chain of trust" versteht, dann kann das sehr wohl im Sinne des Benutzers sein, wenn sichergestellt werden soll, dass Programme unverändert sind und von dem kommen, von dem man das glaubt. Meist ist es da ja, dass die Programme aus Sicht des Benutzers nicht genug machen - etwa nicht das Kopieren von Musik erlauben, sondern nur das Abspielen. Hier ist es aber normalerweise nicht "obscurity", das Code schützt, sondern andere kryptografische Maßnahmen, die irgendwie bis zur Hardware gehen müssen. Man schaue sich z.B. an, wie die XBox 360 das macht.

Übrigens: GCC ist doch auch Opensource. Das war ein komisches Argument von "Hannes-Spz". Entscheidend ist eher, wie abstrakt der von der Sprache erzeugte Zwischencode ist - falls es überhaupt einen gibt. JavaScript z.B. ist immer Quelltext.

Mein Tipp wäre eher Haskell oder OCaml in Maschinencode kompilieren. Die Sprachmuster, die dort ein guter Compiler erzeugt, sind nur einer Minderheit vertraut und deutlich komplexer und somit schwerer zurückzuübersetzen. Oder man wählt eine Sprache, wo auch schon am Quelltext die Mehrzahl der Entwickler scheitert - z.B. CommonLisp oder Smalltalk :)

Stefan

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder