के माध्यम से पाइथन बाइटकोड को रोकना वास्तव में, ड्रॉपबॉक्स ने इसे बहुत अच्छी तरह से बनाया, वे पाइथन में बने अपने डेस्कटॉप एप्लिकेशन को सुरक्षित करने में सक्षम थे; मैंने इसका बहुत कुछ शोध किया, लेकिन obfuscation से बेहतर कोई अच्छा समाधान नहीं है, जो जाने के लिए बहुत सुरक्षित तरीका नहीं है, और आप कहीं भी अपना कोड अपलोड कर देखेंगे।दुभाषिया उत्परिवर्तन
मैं जियोवानी बाजो (PyInstaller संस्थापक) द्वारा किए गए एक सत्र की बात सुनी है, उन्होंने कहा ड्रॉपबॉक्स करता है:
- Bytecode-पांव मार अपने CPython का दुभाषिया recompiling द्वारा, और इस से, मानक CPython दुभाषिया इसे चलाने में सक्षम नहीं होगा, केवल पुनः संकलित cpython दुभाषिया।
- आपको जो करना है वह
define loadup 8
के नीचे की संख्या को घुमाने के लिए है।
मैं कभी भी पायथन के स्रोत कोड से नहीं चला हूं, इसलिए, मैं दावा नहीं करूंगा कि मैं उपरोक्त शब्दों को पूरी तरह से समझता हूं।
मुझे विशेषज्ञों की आवाज़ सुनने की ज़रूरत है: ऐसी चीज कैसे करें? और अगर पुन: संकलन के बाद मैं अपने अनुप्रयोग को PyInstaller जैसे उपलब्ध टूल का उपयोग करके पैकेज करने में सक्षम हो जाऊंगा?
अद्यतन:
मैं के बारे में कैसे ड्रॉपबॉक्स कहानियो/उत्परिवर्तन के इस प्रकार करता है कुछ शोध किया है, और मैं इस पाया:
Hagen Fritsch के अनुसार, वे इसे दो चरणों में कार्य करें:
वे प्रत्येक पाइथन मॉड्यूल के कोड ऑब्जेक्ट में कुछ मानों द्वारा बीजित आरएनजी के साथ टीईए सिफर का उपयोग करते हैं। वे तदनुसार दुभाषिया समायोजित तो यह
क) मॉड्यूल decrypts और
ख) decrypted कोड-वस्तुओं के लिए उपयोग रोकता है।
यह ड्रॉपबॉक्स को सब कुछ डिक्रिप्ट करने और बिल्टिन मार्शलर का उपयोग करके मॉड्यूल को डंप करने का सीधा मार्ग होता।
एक और चाल का उपयोग ऑपकोड के मैन्युअल स्कैम्बलिंग है। दुर्भाग्य से यह केवल अर्धसूत्रीय रूप से तय किया जा सकता है, इस प्रकार उनके मोनोल्फाबेटिक प्रतिस्थापन सिफर कुछ समय जीतने के शब्दों में काफी प्रभावी साबित हुआ।
मैं अभी भी यह कैसे किया जा सकता है, अधिक से अधिक, मैं नहीं जानता कि कैसे डिक्रिप्शन इस प्रक्रिया में होता है ... मैं सभी विशेषज्ञों की आवाज यहाँ चाहते हैं ... आम लोगों के लिए अधिक जानकारी चाहते हैं आप कहाँ हैं।
इसी प्रकार, हालिया प्रश्न: [Undecompilable पायथन] (http://stackoverflow.com/q/15087339/222914) –
धन्यवाद जेन। आपने जो कहा उससे बहुत समान, उसमें, नव निर्मित/शफल दुभाषिया में आत्मनिरीक्षण मॉड्यूल को हटाने। दिन के अंत में – securecurve
, बाइटकोड स्मृति से निकाला जा सकता है, फिर, हमलावर नए शफल बाइटकोड और मानक के बीच की तुलना कर सकता है यह जानने के लिए कि शफल कैसे था; लेकिन, चलो निष्पक्ष हो, क्या हमलावर नहीं हो सकता है, स्रोत कोड प्राप्त करने के लिए सी में लिखे गए एक प्रोग्राम को डीकंपाइल नहीं कर सकता है, उलट करने के खिलाफ कुछ भी सुरक्षित नहीं है, यह एक व्यापार बंद है ... इस तरह मैं चीजों को देखता हूं, क्या मैं गलत हूं । – securecurve