2009-02-23 17 views
35

क्या आप किसी भी उपकरण के बारे में जानते हैं जो मुझे पाइथन कोड obfuscating में सहायता कर सकता है?पायथन कोड Obfuscation

+99

इसे पर्ल में कनवर्ट करें? बूम, बूम, धन्यवाद सुनने के लिए, मैं यहाँ सभी सप्ताह हूँ :-) – paxdiablo

+1

डुप्लिकेट: http://stackoverflow.com/questions/261638/how-do-i-protect-python-code –

+0

और अधिक सामान्य चर्चा: http : //stackoverflow.com/questions/164137/how-do-i-deploy-a-python-desktop-application – tzot

उत्तर

5

आप के बजाय बाइट-संकलित .pyc फ़ाइलों .py स्रोत फ़ाइलें भेज सकते हैं कई स्थितियों में पर। यह आपको कुछ स्तर पर obfuscation देता है। जैसा कि pyobfuscate README सुझाव देता है, इसमें सीमाएं हैं। लेकिन आप दो दृष्टिकोणों को गठबंधन करने में सक्षम हो सकते हैं।

15

आपकी समस्या स्थान को निर्दिष्ट नहीं किया गया है। क्या यह कमांड लाइन ऐप के लिए है? क्या यह कोड लाइब्रेरी के रूप में उपयोग किया जाना चाहिए?

दो अन्य उत्तरों के अतिरिक्त, आप कोड को बाइनरी में एम्बेड कर सकते हैं। जब यह शुरू होता है, कोड को डीकोड करें और स्ट्रिंग को eval करें। यह साझा लाइब्रेरी एक्सटेंशन के लिए भी काम करता है। आप बाइट कोड के साथ ऐसा भी कर सकते हैं, मुझे लगता है, लेकिन यह Py_EvalCode को कॉल करने जितना आसान नहीं होगा।

py2exe या फ्रीज अन्य समाधान हैं, जो कोड को निष्पादन योग्य में परिवर्तित करते हैं। इसमें बाइनरी में कोड शामिल है, और किसी भी तरह की गंभीर अस्पष्टता नहीं करता है, लेकिन यह अभी भी एक .py फ़ाइल खोलने से कठिन है।

आप साइथन में कोड लिख सकते हैं, जो कि पाइथन के समान है और सीओ में पाइथन एक्सटेंशन फाइलों को लिखता है। शायद इनका सबसे अच्छा अभियंता रिवर्स करने के लिए है और अभी भी आपको उत्साह के लिए एक उच्च स्तरीय भाषा प्रदान करता है।

वे सभी समाधान हैं, जैसा कि सभी समाधान हैं। आप कितना मुश्किल होना चाहते हैं?

+6

+1 https://github.com/astrand/pyobfuscate पर रीडायरेक्ट और इस पर बहुत अच्छी हो पाया यह क्या करता है। – Dan

+0

उपयोग करने का सबसे आसान समाधान क्या है, अगर मैं बस आसान 'डीकंपाइल' संभव नहीं चाहता हूं? – Basj

4

पायथन की मानक पुस्तकालय में compileall.py शामिल है। आप इसे निर्देशिका पर चला सकते हैं और यह आपकी सभी स्रोत फ़ाइलों के लिए .pyc फ़ाइलों को उत्पन्न करेगा। .pyc फ़ाइलों में केवल बाइटकोड और डॉकस्ट्रिंग शामिल होंगे, और सभी टिप्पणियां निकाल देंगे। फिर आप इस निर्देशिका की प्रतिलिपि बना सकते हैं, और फिर मूल स्रोत फ़ाइलों को निकालने के लिए rm -rf $(find . -name .py) जैसे कुछ चला सकते हैं।

2

आपका सबसे अच्छा शर्त Shed Skin, एक प्रयोगात्मक अजगर-टू-सी ++ संकलक का उपयोग कर इसे संकलित करने के लिए है।

+0

पापी भी है, लेकिन यह अनचाहे है और यह स्वीकार किए गए कोड में बहुत सीमित है। – Antimony

+0

@ एंटीमोनी: क्या आप RPython के बारे में बात कर रहे हैं?PyPy (जो RPython उपयोग करता है) अजगर का एक पूरा कार्यान्वयन है, और सब पर कोड द्वारा इसे स्वीकार करने में सीमित नहीं है। –

+0

@ जॉन हाँ मैं RPython के बारे में बात कर रहा हूँ। यह पीपीपी परियोजना का हिस्सा है। – Antimony

6

मुझे वास्तव में एक बहुत अच्छी परियोजना मिली जो मूल रूप से एक पायथन को सी ++ में परिवर्तित करती है और एक बाइनरी, स्थैतिक रूप से जुड़ी फ़ाइल बनाती है।

इस चेक आउट: http://www.nuitka.net/

0

हालांकि यह कहानियो को ऐसा नहीं करता है, इस Python recipe बहुत अच्छी तरह से टिप्पणी बाहर अलग करना भी शामिल है, पायथन कोड के आकार को कम करने के लिए काम करता है।

संबंधित मुद्दे