
Une interface utilisateur de bureau Qt Widgets pour explorer le bytecode Python avec pycdc/pycdas, inspecter la décompilation native et utiliser un repli IA pour les objets de code non supportés.
Une interface utilisateur de bureau basée sur Qt Widgets pour explorer le bytecode Python avec pycdc / pycdas, inspecter les résultats natifs de décompilation, importer la sortie « oneshot » de Pyarmor, et réessayer les objets code non pris en charge avec un repli IA.
L'application prend en charge les environnements de bureau Windows et Linux.


.pyc.pyoFusionnéNatifIACtrl+RPar défaut, l'application n'envoie pas l'intégralité du .pyc.
Elle construit une invite à partir de l'objet code actuellement sélectionné, incluant :
Cela permet de concentrer la reconstruction par repli sur le nœud sélectionné plutôt que sur l'ensemble du fichier.
L'application privilégie les exécutables locaux situés à côté du binaire de l'application et recherche :
pycdc.exepycdcpycdas.exepycdasdans le même répertoire que le binaire pycdc-studio.
Vous pouvez les remplacer par des variables d'environnement :
PYCDC_STUDIO_PYCDCPYCDC_STUDIO_PYCDASL'application peut importer des projets protégés par Pyarmor en déléguant à
Lil-House/Pyarmor-Static-Unpack-1shot.
Flux d'intégration actuel :
oneshot/shot.py sur un répertoire de projet Pyarmor sélectionnépyarmor-1shot générer .1shot.das et .1shot.cdc.pyLes paquets de livraison sont censés inclure automatiquement la chaîne d'outils oneshot Pyarmor et les dépendances Python requises.
Pour le développement local, le code actuel cherche d'abord les fichiers intégrés à côté du paquet de l'application, et prend également en charge un clone local à :
external/Pyarmor-Static-Unpack-1shot/oneshot/shot.pyet attend que pyarmor-1shot / pyarmor-1shot.exe soit disponible dans le même répertoire que shot.py.
Vous avez également besoin d'un environnement Python capable d'exécuter shot.py, incluant pycryptodome.
Si votre disposition est différente, vous pouvez toujours la remplacer par des variables d'environnement :
PYCDC_STUDIO_PYARMOR_PYTHONPYCDC_STUDIO_PYARMOR_SHOTPYCDC_STUDIO_PYARMOR_PYTHONPATHPYCDC_STUDIO_PYARMOR_OUTPUT_ROOTExemple :
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-studioFichier -> Importer un projet Pyarmor...pyarmor_runtime.1shot.* générés soient importés dans l'espace de travailRemarques :
PYCDC_STUDIO_PYARMOR_OUTPUT_ROOT est défini.Avant d'utiliser le repli IA, ouvrez Paramètres et configurez au moins :
URL de baseClé APIModèleLe client actuel attend un point de terminaison d'API compatible OpenAI.
La boîte de dialogue des paramètres stocke la configuration du fournisseur avec QSettings et se rabat sur les variables d'environnement lorsqu'un champ est vide.
Variables d'environnement prises en charge :
PYCDC_STUDIO_AI_BASE_URLPYCDC_STUDIO_AI_API_KEYPYCDC_STUDIO_AI_MODELPYCDC_STUDIO_AI_SYSTEM_PROMPTPrérequis :
Exemple :
cmake -S . -B build
cmake --build build
pycdc-studio.pyc / .pyo, ou glissez un dossier dans la fenêtreFichier -> Importer un projet Pyarmor... pour un projet protégé par PyarmorParamètres depuis le menu supérieur et configurez votre modèle IA si vous souhaitez utiliser le repli IARéessayer avec l'IA sur le nœud sélectionné si la décompilation native est incomplète ou erronéeDes cas de test plus longs sont inclus dans test/ :
workflow_orchestrator.pyasync_batch_runner.pyplugin_config_resolver.pyLe dépôt ne suit que les sources des exemples.
Pour générer localement des fichiers .pyc pour les tests par glisser-déposer :
python test/compile_test_samples.py
Ce script écrit le bytecode compilé dans test/__pycache__/.
Ce projet est encore expérimental.
La vue Fusionné actuelle est un document mixte honnête :
Ce n'est pas encore un fusionneur de sources en ligne complet.
Ce projet s'intègre avec pycdc / pycdas, dont le projet amont est sous licence GPL-3.0.
pycdc : GPL-3.0pycdc / pycdas doivent inclure l'avis GPL-3.0pycdc dans THIRD_PARTY_NOTICES.txtVoir le projet amont pour les détails complets de la licence :