Python 3.5 Code in .exe Datei

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
__blackjack__
User
Beiträge: 13112
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@xXSkyWalkerXx1: Der Abschnitt über die Lizenzgebühren ist komisch. Man darf Geld für GPL-Software verlangen. Auch viel Geld. Man muss halt immer auch den Quelltext bereit stellen, und der Empfänger darf die Software und auch den Quelltext unter der GPL kostenlos weiterverteilen. Darum ist das nicht so wirklich sinnvoll (viel) Geld zu verlangen.

Welche Programme unter der GPL siehst Du wo man nirgends den Quelltext findet?

Du kannst den Quelltext auch nur auf verlangen heraus geben. Allerdings an jeden der das Programm hat. Und Deine Käufer dürfen das Programm beliebig weitergeben. Also musst Du den letztlich nicht nur an die Käufer rausgeben. Und Du musst wirklich deutlich machen, dass das Programm unter der GPL steht. Also nicht versuchen diesen Umstand irgendwie möglichst gut zu verstecken, damit keiner auf die Idee kommt zu fragen. Das sage ich extra weil die Frage nach dem Bytecode einen kräftigen Geruch hat. Schau Dir noch mal an welche Rechte deine Käufer durch die GPL haben. Und dann überlege doch selber mal ob es ausreicht nur den Bytecode zu haben, um diese Rechte wahrzunehmen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Hm, das ist doof. Sprich, für meine Zwecke (und künftige Programme von mir) wäre es sinnvoller eine PyQt5 Lizenz zu kaufen?
Bleibt nur die Frage, ob auch 'ne Qt5 Lizenz nötig ist, worin ich mich auch belesen müsste.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Qt ist immer noch LGPL, das sollte ok gehen. PyQt brauchst du aber eine Lizenz, wenn GPL (ohne L) es nicht tut.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Also brauche ich nur eine PyQt5 Lizenz für die kommerzielle Verbreitung? :3
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ja.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Oder was findest du, ist es sinnvoller die 480€ zu sparen und dafür mit C# / C++ weiter zu machen oder lieber das Geld zahlen, aber dafür mit meinem Pythonwissen weitermachen (habe zwar nicht so viel, aber auch nicht wenig) können?

Außerdem wie sieht's mit der Sicherheit des Programms aus, wenn das Programm erst ein Login vornimmt (via Http Anfrage)?
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

C#? Mit Qt? Oder Windows GUI Zeug?

C++ ist ein SEHR anders Biest als Python und C#. Das lernt man nicht mal eben so. Würde ich mir gut überlegen. Aber am Ende kannst nur du entscheiden, was dir mehr wert ist - monatelang lernen oder 480€.

Und die letzte Frage verstehe ich nicht.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Was meinst Du mit Sicherheit? Dass jemand Deinen Updatemechanismus misbraucht, um dem User Malware unterzuschieben? Dafür solltest Du Deine Updates signieren und nur mit per HTTPs kommunizieren. Umgekehrt, weiß ich nicht, welche Software auf Deinem Server läuft, also kann man auch nichts sagen, wie man die dann absichern müßte.
Außerdem ist es doch kein Problem Deine Update-GUI als GNU zu veröffentlichen, da sollte ja nicht viel geheimes drin stecken.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Meine bezüglich Cracken. Was hacking angeht bin ich neu bzw habe mich da noch garnicht belesen.
Könnte man mein Programm hacken?
(beim Start wird ein Login erfordert, Daten werden an eine https Seite gesendet, wenn einloggen erfolgreich war und auf andere https Seite key vorhanden ist, dann erscheint eine neue GUI)
Beim Decompilieren (da Prog in exe) könne man doch so momentan kinderleicht (bezüglich Scriptkiddies) Cracken (Sourcecode verändern und so den Login umgehen)?

Der Quellcode enthält ein Passwort für eine HTTPS Seite, außerdem verkaufe ich ja den Inhalt, der geupdatet werden soll, es soll ja also nicht jeder die Datei griegen können (wenn Quellcode irgendwo geleaked wird bzw Login Mechanismen entfernt wird).
Benutzeravatar
__blackjack__
User
Beiträge: 13112
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@xXSkyWalkerXx1: Ein Passwort in Deinem Programm wirst Du nicht wirklich schützen können wenn sich dafür jemand interessiert. Das ist also per se schon mal unsicher.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

xXSkyWalkerXx1 hat geschrieben: Dienstag 8. Januar 2019, 21:58Der Quellcode enthält ein Passwort für eine HTTPS Seite ...
Schlechte Idee. Dann kannst Du das Passwort auch direkt öffentlich bekannt geben.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wieso speicherst du ein Passwort im Quelltext? Der USER muss sein Passwort angeben, und bekommt dann vom HTTP-Server das ausgelieferte Programm für seinen Cronus MAX.

Und zum Ausspähen dieses Passworts reicht im Zweifel auch ein Netzwerk-Sniffer. HTTPS ist ein bisschen komplizierter zu umgehen als reines HTTP, aber da der User auf seinem eignen Rechner beliebige Proxies die transparent die Daten abgreifen, muss man da eh nix dekomplilieren etc.

https://www.telerik.com/fiddler/web-traffic-recording
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Tut mir leid, hätte dazu schreiben sollen, dass das eingespeicherte Passwort ein Extrapasswort ist, um auf eine Seite kommen zu können, wo drr Skript ist.
Sprich, du loggst dich ein, wenn erfolgreich, wird versucht sich in eine Passwort geschützte Seite einzuloggen.

Was wäre 'ne Alternative zum eingespeicherten Passwort einer Seite?
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das macht keinen Sinn, mehr als einen Login zu haben.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Wieso?
Wenn der Benutzer einen Button klickt, loggt er sich ein, war dies erfolgreich wird sofort Zugriff auf eine https Seite versucht, um die Benutzerliste zu checken, da nur Benutzer die darin stehen Zugang zum Programm haben.
ALL DAS geschieht nachdem der Button gedrückt wurde, vorher hat der Benutzer noch keinen Zugang zur GUI, wo er nach einem Update checken kann.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich diskutiere das nicht länger, ohne Code zu sehen. Es ist schlicht eine Tatsache, das bei einem Account auf einem Webserver, der von einer Anwendung abgefragt wird, kein solches 2tes Passwort benötigt wird. Wenn dir das nicht klar ist, und du da irgend etwas anderes getan hast, kann man da ohne Code nur konstatieren - das macht keinen Sinn.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Kennt sich jemand mit diesem Fehlercode aus AutoPyToExe aus?

Code: Alles auswählen

62410 INFO: Loading module hook "hook-clr.py"...
An error occurred, traceback follows:
Traceback (most recent call last):
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\auto_py_to_exe\__main__.py", line 215, in convert
    pyi.run() # Execute PyInstaller
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\__main__.py", line 111, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\__main__.py", line 63, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\build_main.py", line 844, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\build_main.py", line 791, in build
    exec(code, spec_namespace)
  File "C:\Users\Philipp\AppData\Local\Temp\tmp2omtn5k7\Minecraft_SGI.spec", line 17, in <module>
    noarchive=False)
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\build_main.py", line 243, in __init__
    self.__postinit__()
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\datastruct.py", line 158, in __postinit__
    self.assemble()
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\build_main.py", line 502, in assemble
    module_hook.post_graph()
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\imphook.py", line 410, in post_graph
    self._load_hook_module()
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\building\imphook.py", line 377, in _load_hook_module
    self.hook_module_name, self.hook_filename)
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\compat.py", line 785, in importlib_load_source
    return mod_loader.load_module()
  File "<frozen importlib._bootstrap_external>", line 396, in _check_name_wrapper
  File "<frozen importlib._bootstrap_external>", line 817, in load_module
  File "<frozen importlib._bootstrap_external>", line 676, in load_module
  File "<frozen importlib._bootstrap>", line 268, in _load_module_shim
  File "<frozen importlib._bootstrap>", line 693, in _load
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 673, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\site-packages\PyInstaller\hooks\hook-clr.py", line 37, in <module>
    raise Exception(pyruntime + ' not found')
Exception: Python.Runtime not found

Project output will not be moved to output folder
Complete.
Der Fehler kommt erst seit Neuesten, weiß nur nicht was ich machen soll.
Python neu installieren möchte ich eigentlich nicht unbedingt...
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Schätze Mal, dass ich die "hook-clr.py" ersetzen müsste, mit einer funktionierenden, aber die gibt's nirgends zu downloaden, also nur diese Datei. ^^
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wieso sollte diese Datei der Grund sein? Die liegt da und macht immer das gleiche. Irgendwas woanders hat sich geändert. Du importierst was anderes. Etc. Ich nehme mal nicht an, das du git oder ähnliches benutzt? Solltest du. Denn dann kann man auf alte versionsstände gehen, und ermitteln, was genau den Fehler eingeführt hat.

Alternativ würde ich erstmal ein neues Mini-Projekt machen (hallo Welt), und das zum laufen bringen. Und dann Komplexität hinzufügen, bis es bricht.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Okay, danke, hab's nun Mal gemacht.

Herraus kam, dass der Fehler irgendwie beim Importieren von PySide2 liegt ... Komisch, denn vorher ging es immer.
Antworten