
AST-आधारित Python कोड रूपांतरण एवं डीओबफस्केशन फ्रेमवर्क

Noctyra एक AST-आधारित फ्रेमवर्क है जो कोड रूपांतरण और डीओबफ़स्केशन के लिए डिज़ाइन किया गया है। यह जटिल अभिव्यक्तियों और तर्क को हल करके पायथन स्रोत कोड का विश्लेषण और सरलीकरण करने के लिए एक मॉड्यूलर पाइपलाइन प्रदान करता है।
इस परियोजना का उद्देश्य पायथन के एब्सट्रैक्ट सिंटैक्स ट्री को प्रोसेस करने के लिए एक लचीला वातावरण प्रदान करना है। प्लग करने योग्य ट्रांसफॉर्मर्स के अनुक्रम का उपयोग करके, Noctyra यह कर सकता है:
सुनिश्चित करें कि निर्भरता प्रबंधन के लिए uv स्थापित है।
uv sync
किसी लक्ष्य स्क्रिप्ट को प्रोसेस करने के लिए, निम्नलिखित कमांड का उपयोग करें:
python main.py <input_file> [options]
विकल्प:
file: इनपुट पायथन फ़ाइल का पथ (आवश्यक)।--output: रूपांतरित कोड के लिए फ़ाइल नाम (डिफ़ॉल्ट: out.py)।--iterations: रूपांतरण पासों की एक निश्चित संख्या निर्धारित करें (डिफ़ॉल्ट: 0 ऑटो-डिटेक्ट के लिए)।--max-iterations: ऑटो मोड में पासों को सीमित करें (डिफ़ॉल्ट: 100)।--debug: डिबगिंग रूपांतरणों के लिए वर्बोज़ लॉगिंग सक्षम करें (बहुत अच्छा लगता है)।यह परियोजना निर्भरता प्रबंधन के लिए uv और सामान्य कार्यों के लिए Makefile का उपयोग करती है।
uv sync --all-extras --dev
PR सबमिट करने या परिवर्तन पुश करने से पहले, सुनिश्चित करें कि सभी जाँचें पास हों:
make testmake formatmake typecheck(Windows उपयोगकर्ता: ये कमांड make.bat के माध्यम से स्वचालित रूप से काम करते हैं।)
हर पुश पर GitHub Actions के माध्यम से स्वचालित जाँचें की जाती हैं, जिनमें Ruff के साथ लिंटिंग, Mypy के साथ टाइप चेकिंग और Pytest के साथ यूनिट परीक्षण शामिल हैं।
Noctyra में बुनियादी संसाधन सीमाओं के साथ एक आंतरिक मूल्यांकन इंजन शामिल है। हालाँकि, अविश्वसनीय कोड से निपटने के दौरान, संभावित दुष्प्रभावों या संसाधन थकावट को रोकने के लिए पाइपलाइन को एक पृथक वातावरण (जैसे कंटेनर या सैंडबॉक्स) के भीतर चलाने की अत्यधिक अनुशंसा की जाती है।