2010-03-29 13 views
86

मैं एक सुरक्षा सॉफ्टवेयर विकसित कर रहा हूं और अपने जावा कोड को खराब करना चाहता हूं ताकि इंजीनियर को रिवर्स करना असंभव हो जाए। सबसे विश्वसनीय जावा obfuscator क्या है?सर्वश्रेष्ठ जावा obfuscator?

+10

@Xinus "रिवर्स इंजीनियर करने के लिए असंभव हो गया" - शायद ही, सबसे अच्छा प्रयास किया है और असफल – ant

+163

मेरे कुछ सहयोगी थे जिन्होंने कुछ भारी obfuscated कोड बनाया था। लेकिन वह उनका इरादा नहीं था। –

+4

'यह एक बार कहा गया था कि यदि आपके पास टाइपवाइटर पर एक बंदरगाह की मात्रा और एक समय की मात्रा में बंदरगाह था, तो वे शेक्सपियर के सभी महान कार्यों को लिखेंगे।' - दिलबर्ट – ant

उत्तर

81

सबसे पहले, आपको वास्तव में यह ध्यान रखना होगा कि यह कभी कुछ रिवर्स-इंजीनियर कुछ असंभव नहीं है। सब कुछ हैकबल है। एक स्मार्ट आईडीई का उपयोग कर एक स्मार्ट डेवलपर पहले से ही काफी दूर हो सकता है।

ठीक है, आप here एक सूची पा सकते हैं। ProGuard बहुत अच्छा है। मैंने इसे स्वयं इस्तेमाल किया है, लेकिन केवल जावा कोड को "छोटा" करने के लिए।

+1

@ बालससी: तो जावा कोड को खराब करने के लिए आप किस टूल का उपयोग करते हैं? आप अपने जावा कोड को खराब कर देते हैं, न कि आप? – Thinhbk

+0

@ थिंहबक Obfuscation उपयोगी ढेर निशान प्राप्त करना मुश्किल बनाता है। –

+0

@ ThorbjørnRavnAndersen: सहमत हैं। आईएमओ, obfuscation ढेर निशान ज्यादातर बेकार हो जाएगा।उस स्थिति में, मैं लॉग संदेश के साथ कुछ चाल का उपयोग कर रहा हूं, जो मदद कर सकता है। – Thinhbk

5

मैंने Allatori का उपयोग किया और यह बहुत अच्छा काम किया।

10

मुझे लगता है कि प्रोगार्ड सबसे अच्छा है। इसे अपने आईडीई (उदाहरण के लिए नेटबीन) के साथ एकीकृत करना भी संभव है। हालांकि, इस बात पर विचार करें कि यदि आप अपने कोड को खराब करते हैं तो आपके लॉग में समस्याओं को ट्रैक करना मुश्किल हो सकता है ..

+6

+1 "इस बात पर विचार करें कि यदि आप अपने कोड को खराब करते हैं तो आपके लॉग में समस्याओं को ट्रैक करना मुश्किल हो सकता है"। बस जब आपने सोचा कि डीबगिंग काफी कठिन था ... –

+7

एक अच्छा obfuscator जो नाम और लाइन नंबर की जानकारी बदलता है, उस प्रक्रिया को रिवर्स करने के लिए एक लॉग उत्पन्न करना चाहिए। इस तरह कम से कम ढेर निशान obfuscated बाइनरी के लिए उपयोगी रहते हैं। –

+3

प्रोगार्ड डीबगिंग के लिए ऐसी रिवर्स फाइलें बनाता है। :-) – Malax

4

मैं अपनी पिछली कंपनी में Klassmaster के साथ काम करता था और यह वास्तव में अच्छी तरह से काम करता है और निर्माण प्रणालियों के साथ बहुत अच्छा एकीकृत कर सकता है (maven समर्थन उत्कृष्ट है)। लेकिन यह मुफ्त नहीं है हालांकि।

7

जैसा कि कहीं और कहा गया है, proguard अच्छा है, लेकिन यह ज्ञात नहीं है कि यहां http://pyx4me.com/pyx4me-maven-plugins/proguard-maven-plugin/ के लिए एक तृतीय-पक्ष मेवेन प्लगइन भी है ... मैंने उन्हें दोनों एक साथ उपयोग किया है और वे बहुत हैं अच्छा।

20

यदि कोई कंप्यूटर इसे चला सकता है, तो उपयुक्त रूप से प्रेरित मानव इसे उलटा कर सकता है।

+0

कितने लोग obfuscated कोड पढ़ सकते हैं और तर्क समझ सकते हैं? मेरे पास बहुत सारे इंजीनियर मित्र हैं और वे ऐसा नहीं कर सकते हैं। केवल जॉन नैश ऐसा कर सकते हैं;) – kodmanyagha

+2

@ कोडमनीघा अगर उन्हें पर्याप्त प्रेरित किया गया तो वे इसे सीखेंगे। यह मुश्किल नहीं है। –

4

हमारे पास obfuscating के बजाय जार एन्क्रिप्ट करने के लिए बहुत अच्छी किस्मत है। हम Classguard का उपयोग करते हैं।

+6

यदि आपने व्लादिमीर रूबत्सोव द्वारा "जावा बाइट-कोड एन्क्रिप्शन क्रैकिंग" (http://www.javaworld.com/javaworld/javaqa/2003-05/01-qa-0509-jcrypt.html) नहीं पढ़ा है, तो आप चाहें अब ऐसा करने के लिए। –

25

मेरे लेख Protect Your Java Code - Through Obfuscators And Beyond बनाम आपकी ऐप्लिकेशन की रिवर्स इंजीनियरिंग अधिक महंगा बना दिया तीन अन्य तरीकों कहानियो की चर्चा के लिए, और उपकरण और आगे पढ़ने के सामग्री के लिंक का एक संग्रह की जाँच करें।

+1

यह वही है जो मुझे वास्तव में चाहिए। मैं अपनी परियोजनाओं के लिए PHP obfuscator लिखना चाहता हूँ। तर्क हर जगह समान है। धन्यवाद ... – kodmanyagha

+1

जावा obfuscation और सॉफ्टवेयर संग्रह के बारे में कूल और व्यापक लेख। – erm3nda

4

यह सच है कि किसी भी कोड को रिवर्स करना हमेशा संभव है, जैसे किसी घर की रक्षा करना असंभव है, इसलिए कोई भी इससे चोरी नहीं कर सकता है। यह मुझे दरवाजा बंद करने से नहीं रोकता है, हालांकि। असल में, मैं जावा दुनिया में नहीं हूं, मैं .net के लिए BitHelmet का उपयोग करता हूं।

+6

+1 आपको वापस नेट पर लाने के लिए +1। यह उत्तर अनुपयोगी नहीं है। – HaloWebMaster

4

मैं अगर समाधान सुरक्षित है निश्चित रूप से पता नहीं है, लेकिन ClassGuard समाधान के बारे में है, यह लेख और पर टिप्पणी को पढ़ने के लिए दिलचस्प है: http://www.javaworld.com/community/?q=node/1604#comment-12296

+0

और एक अन्य विकल्प जो defineClass के बजाय देशी कोड का भी उपयोग करता है [JarCrypt] (http://www.componio.com/products/jinstaller/jarcryp/) – Renato

+0

एक लेख [क्लासगार्ड] को क्रैक करने के तरीके को पढ़ाने वाला एक लेख (http: // zenofx .com/classguard /): http://setrst.blogspot.com/2010/04/classguard-unguarded.html। मुझे नहीं पता कि यह अभी भी नवीनतम संस्करण पर काम करता है या नहीं। – Renato

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