
Eine Qt-Widgets-Desktop-Benutzeroberfläche zum Erkunden von Python-Bytecode mit pycdc/pycdas, zum Inspizieren nativer Dekompilierung und zur Nutzung von KI-Fallback für nicht unterstützte Code-Objekte.
Eine Qt-Widgets-Desktop-Oberfläche zum Erkunden von Python-Bytecode mit pycdc / pycdas, zum Untersuchen nativer Dekompilierungsergebnisse, zum Importieren von Pyarmor-Oneshot-Ausgaben und zum erneuten Versuchen nicht unterstützter Codeobjekte mit KI-Fallback.
Die Anwendung unterstützt sowohl Windows- als auch Linux-Desktopumgebungen.


.pyc / .pyo-Dateien direktZusammengeführtNativKIStrg+RDie Anwendung sendet standardmäßig nicht die gesamte .pyc-Datei.
Sie erstellt eine Eingabeaufforderung aus dem aktuell ausgewählten Codeobjekt, einschließlich:
Dadurch bleibt die Fallback-Rekonstruktion auf den ausgewählten Knoten fokussiert, anstatt auf die gesamte Datei.
Die Anwendung bevorzugt derzeit lokale ausführbare Dateien neben der Anwendungsbinärdatei und sucht nach:
pycdc.exepycdcpycdas.exepycdasim selben Verzeichnis wie die pycdc-studio-Anwendungsbinärdatei.
Sie können diese mit Umgebungsvariablen überschreiben:
PYCDC_STUDIO_PYCDCPYCDC_STUDIO_PYCDASDie Anwendung kann mit Pyarmor geschützte Projekte importieren, indem sie an
Lil-House/Pyarmor-Static-Unpack-1shot delegiert.
Aktueller Integrationsablauf:
oneshot/shot.py auf einem ausgewählten Pyarmor-Projektverzeichnispyarmor-1shot generiert .1shot.das- und .1shot.cdc.py-DateienEs wird erwartet, dass Release-Pakete die Pyarmor-Oneshot-Toolchain und die erforderlichen Python-Paketabhängigkeiten automatisch bündeln.
Für die lokale Entwicklung sucht der aktuelle Code zuerst nach gebündelten Dateien neben dem Anwendungspaket und unterstützt auch einen lokalen Klon unter:
external/Pyarmor-Static-Unpack-1shot/oneshot/shot.pyund erwartet, dass pyarmor-1shot / pyarmor-1shot.exe im selben Verzeichnis
wie shot.py verfügbar ist.
Sie benötigen außerdem eine Python-Umgebung, die shot.py ausführen kann,
einschließlich pycryptodome.
Falls Ihr Layout anders ist, können Sie es dennoch mit Umgebungsvariablen überschreiben:
PYCDC_STUDIO_PYARMOR_PYTHONPYCDC_STUDIO_PYARMOR_SHOTPYCDC_STUDIO_PYARMOR_PYTHONPATHPYCDC_STUDIO_PYARMOR_OUTPUT_ROOTBeispiel:
git clone https://github.com/Lil-House/Pyarmor-Static-Unpack-1shot external/Pyarmor-Static-Unpack-1shot
cmake -S external/Pyarmor-Static-Unpack-1shot/pycdc -B external/Pyarmor-Static-Unpack-1shot/build
cmake --build external/Pyarmor-Static-Unpack-1shot/build --config Release
cmake --install external/Pyarmor-Static-Unpack-1shot/build --config Release
python -m pip install pycryptodome
pycdc-studioDatei -> Pyarmor-Projekt importieren...pyarmor_runtime enthält.1shot.*-Dateien in den Arbeitsbereich importiert wurdenHinweise:
PYCDC_STUDIO_PYARMOR_OUTPUT_ROOT gesetzt ist.Bevor Sie den KI-Fallback verwenden, öffnen Sie Einstellungen und konfigurieren Sie mindestens:
Basis-URLAPI-SchlüsselModellDer aktuelle Client erwartet einen OpenAI-kompatiblen API-Endpunkt.
Der Einstellungsdialog speichert die Anbieterkonfiguration mit QSettings und greift auf Umgebungsvariablen zurück, wenn ein Feld leer ist.
Unterstützte Umgebungsvariablen:
PYCDC_STUDIO_AI_BASE_URLPYCDC_STUDIO_AI_API_KEYPYCDC_STUDIO_AI_MODELPYCDC_STUDIO_AI_SYSTEM_PROMPTAnforderungen:
Beispiel:
cmake -S . -B build
cmake --build build
pycdc-studio.pyc / .pyo-Datei, oder ziehen Sie einen Ordner in das FensterDatei -> Pyarmor-Projekt importieren... für ein mit Pyarmor geschütztes ProjektEinstellungen aus dem oberen Menü und konfigurieren Sie Ihr KI-Modell, wenn Sie den KI-Fallback verwenden möchtenErneut mit KI versuchen für den ausgewählten Knoten, wenn die native Dekompilierung unvollständig oder falsch istLängere Testfälle sind unter test/ enthalten:
workflow_orchestrator.pyasync_batch_runner.pyplugin_config_resolver.pyDas Repository enthält nur die Quell-Beispiele.
Um lokale .pyc-Dateien für Drag-and-Drop-Tests zu generieren:
python test/compile_test_samples.py
Dieses Skript schreibt den kompilierten Bytecode in test/__pycache__/.
Dieses Projekt ist noch experimentell.
Die aktuelle Zusammengeführte-Ansicht ist ein ehrliches gemischtes Dokument:
Es ist noch kein vollständiger Inline-Quellcode-Merger.
Dieses Projekt integriert pycdc / pycdas, deren Upstream-Projekt unter GPL-3.0 lizenziert ist.
pycdc: GPL-3.0pycdc / pycdas bündeln, sollten den GPL-3.0-Hinweis enthaltenpycdc-Repository und den Commit in THIRD_PARTY_NOTICES.txtVollständige Lizenzdetails finden Sie im Upstream-Projekt: