2011-06-22 12 views
8

मैं एक प्लेटफॉर्म पर काम करता हूं जो जावा ऐप्स चलाता है। उन ऐप्स को अक्सर obfuscated किया जाता है, उनमें से ज्यादातर ProGuard का उपयोग कर, जो हमारे मंच के साथ डीबगिंग मुद्दों को बहुत मुश्किल बनाता है।obcomuscated जावा बाइटकोड decpiling

वर्तमान में मैं उन ऐप्स को डीकंपाइल करने के लिए जेडी (http://java.decompiler.free.fr/) का उपयोग कर रहा हूं। जेडी एक सभ्य नौकरी करता है, लेकिन कभी-कभी जेनरेट कोड को समझना बहुत मुश्किल होता है।

ऐसा प्रतीत होता है क्योंकि मुख्य रूप से ओबफस्केशन उपकरण वैध बाइटकोड का उत्पादन करने के लिए जेवीएम बाइटकोड के कम बाधित नमूने का उपयोग करते हैं जो वैध जावा कोड (उदाहरण: आक्रामक ओवरलोडिंग) पर वापस मैप नहीं करता है।

तो, मेरा सवाल यह है: क्या एक डीकंपलर बनाया गया है जो विशेष रूप से obfuscated बाइटकोड से निपटने के लिए बनाया गया है?

+0

आप की कोशिश की http://members.fortunecity.com/neshkov/dj.html –

+0

@ anirudh4444 यह केवल खिड़कियों पर चलाता है। मुझे उबंटू पर चलने वाली कुछ चीज चाहिए। – JoaoHornburg

+0

आप इसे उबंटू पर चलाने के लिए शराब/मोनो का उपयोग कर सकते हैं। –

उत्तर

5

मुझे संदेह है कि किसी भी डीकंपलर ऐसा करते हैं। हालांकि आप कस्टम बाइटकोड परिवर्तन को कार्यान्वित कर सकते हैं और ASM जैसे कुछ का उपयोग कर अधिभारित विधि और परिवर्तनीय नामों का नाम बदल सकते हैं।

5

यहां एक सदस्य द्वारा विकसित फर्नाफॉवर नामक एक डिकंपेलर है। यह विशेष रूप से अपूर्ण कोड के लिए बने डीकंपलर होने का दावा करता है, हालांकि आप नमक के अनाज के साथ अपना दावा लेना चाहते हैं। यह यहाँ अपलोड: https://github.com/Zidonuke/Bukkit-MinecraftServer/blob/master/tools/fernflower.jar?raw=true

+0

फ़र्नफ्लॉवर अब आधिकारिक रूप से उपलब्ध नहीं है, और यह अभी भी काफी सरल नियंत्रण प्रवाह परिवर्तनों से पराजित किया जा सकता है। – Antimony

+0

@ एंटीमोनी ने किस बदलाव को समझाया? AFAIK यह ज़ेडकेएम के अपारदर्शी भविष्यवाणी सम्मिलन को भी संभाल सकता है, जो होता है (हुआ?) खेल में सबसे अच्छा प्रवाह obfuscation होने के लिए। – oldrinb

+0

फर्नाफ्लॉवर वापस आ गया है, बच्चे! – thomas