JADX मैजिक स्ट्रिंग्स प्लगइन
एक JADX प्लगइन जो स्ट्रिंग स्थिरांक से जानकारी निकालता है।
विशेषताएँ
प्लगइन डीकंपाइल कोड से स्ट्रिंग स्थिरांक निकालता और विश्लेषण करता है ताकि खोजा जा सके:
- स्रोत फ़ाइल संदर्भ: स्ट्रिंग स्थिरांक में Java/Kotlin स्रोत फ़ाइलों (
.java, .kt, .kts, .scala, .groovy) के संदर्भ का पता लगाता है
- विधि नाम उम्मीदवार: रेगेक्स पैटर्न का उपयोग करके स्ट्रिंग से संभावित विधि नामों की पहचान करता है
- स्ट्रिंग विश्लेषण: सभी स्ट्रिंग स्थिरांक को उनसे जुड़ी विधियों और वर्गों के साथ एकत्र करता है
स्थापना
विकल्प 1: GitHub से स्थापित करें (अनुशंसित)
यदि यह प्लगइन GitHub पर प्रकाशित है, तो आप इसे सीधे स्थापित कर सकते हैं:
jadx plugins --install "github:0rshemesh:jadx-magic-strings"
विकल्प 2: स्रोत से बनाएँ और स्थापित करें
-
रिपॉजिटरी क्लोन करें:
git clone https://github.com/0rshemesh/jadx-magic-strings.git
cd jadx-magic-strings
-
प्लगइन बनाएँ:
-
प्लगइन स्थापित करें:
jadx plugins --install-jar build/libs/jadx-magic-strings-1.0.1.jar
या JAR को मैन्युअल रूप से JADX प्लगइन्स निर्देशिका में कॉपी करें:
- Linux/Mac:
~/.local/share/jadx/plugins/dropins/
- Windows:
%APPDATA%\jadx\plugins\dropins\
प्लगइन बनाना
प्लगइन स्वतंत्र रूप से बनाया जा सकता है:
प्लगइन JAR यहाँ बनेगा:
build/libs/jadx-magic-strings-1.0.1.jar
आवश्यकताएँ:
- Java 11 या उच्चतर
- Gradle (या शामिल Gradle रैपर का उपयोग करें:
./gradlew)
उपयोग
JADX GUI में
-
प्लगइन स्थापित करें (ऊपर स्थापना अनुभाग देखें)
-
JADX GUI चलाएँ:
-
JADX GUI में अपनी APK/DEX फ़ाइल खोलें
-
डीकंपाइलेशन पूरा होने तक प्रतीक्षा करें (डीकंपाइलेशन के बाद प्लगइन स्वचालित रूप से चलता है)
-
प्लगइन तक पहुँचें:
- मेनू बार में प्लगइन्स मेनू पर जाएँ
- "Magic Strings: Show Results" पर क्लिक करें
- एक डायलॉग विंडो खुलेगी जिसमें कई टैब होंगे:
- स्रोत फ़ाइलें: ट्री व्यू जो पहचाने गए स्रोत फ़ाइल पथ और उनके संदर्भ दिखाता है
- शीर्ष उम्मीदवार + स्रोत फ़ाइलें: उच्चतम स्कोर वाले विधि उम्मीदवारों का स्रोत फ़ाइल द्वारा समूहीकृत संयुक्त दृश्य
- विधि उम्मीदवार (फ़िल्टर्ड): फ़िल्टर्ड विधि नाम उम्मीदवार दिखाने वाली तालिका
- सभी स्ट्रिंग्स: सभी निकाले गए स्ट्रिंग स्थिरांक दिखाने वाली तालिका

JADX CLI में
प्लगइन डीकंपाइलेशन के दौरान स्वचालित रूप से चलता है, लेकिन परिणाम देखने के लिए कोई CLI इंटरफ़ेस नहीं है। निकाली गई जानकारी देखने के लिए GUI का उपयोग करें।
यह कैसे काम करता है
- डीकंपाइलेशन के बाद, प्लगइन सभी वर्गों में सभी विधियों को स्कैन करता है
- निर्देश नोड्स (CONST_STR निर्देश) से स्ट्रिंग स्थिरांक निकालता है
- रेगेक्स पैटर्न का उपयोग करके स्ट्रिंग का विश्लेषण करता है:
- स्रोत फ़ाइलें:
.java, .kt, आदि में समाप्त होने वाले फ़ाइल पथ से मेल खाता है
- विधि नाम: कैमलकेस पैटर्न से मेल खाता है जो विधि नाम जैसे दिखते हैं
- परिणामों को GUI के माध्यम से सुलभ डेटा संरचना में संग्रहीत करता है
उदाहरण उपयोग केस
- रिवर्स इंजीनियरिंग: मूल स्रोत फ़ाइल नाम खोजें जो परियोजना संरचना प्रकट कर सकते हैं
- डीओबफस्केशन: डीबग स्ट्रिंग या त्रुटि संदेशों से विधि नामों की पहचान करें
- कोड विश्लेषण: स्ट्रिंग और विधियों के बीच संबंधों को समझें
- मैलवेयर विश्लेषण: दिलचस्प स्ट्रिंग निकालें जो कार्यक्षमता का संकेत दे सकते हैं
सीमाएँ
- प्लगइन केवल डीकंपाइलेशन पूरा होने के बाद काम करता है
- स्ट्रिंग निष्कर्षण डीकंपाइल किए जा रहे कोड पर निर्भर करता है (कुछ अस्पष्ट कोड में सुलभ स्ट्रिंग नहीं हो सकती हैं)
- विधि नाम का पता लगाना अनुमानों का उपयोग करता है और गलत सकारात्मक परिणाम उत्पन्न कर सकता है
- स्रोत फ़ाइल का पता लगाना फ़ाइल पथ वाले स्ट्रिंग पर निर्भर करता है (हमेशा मौजूद नहीं होता)
समस्या निवारण
प्लगइन मेनू में दिखाई नहीं देता:
- सुनिश्चित करें कि प्लगइन सही तरीके से स्थापित है
- जाँच करें कि प्लगइन JAR प्लगइन्स निर्देशिका में है
- सेवा फ़ाइल की पुष्टि करें:
META-INF/services/jadx.api.plugins.JadxPlugin
- सुनिश्चित करें कि आप एक संगत JADX संस्करण (1.5.2+) का उपयोग कर रहे हैं
कोई परिणाम नहीं दिखाया गया:
- कोड में प्रासंगिक स्ट्रिंग नहीं हो सकती हैं
- एक अलग APK/DEX फ़ाइल डीकंपाइल करने का प्रयास करें
- कुछ अस्पष्ट कोड में निकालने योग्य स्ट्रिंग नहीं हो सकती हैं
बिल्ड त्रुटियाँ:
- सुनिश्चित करें कि आप Java 11 या उच्चतर का उपयोग कर रहे हैं
- सब कुछ पुनर्निर्माण करने के लिए
./gradlew clean build चलाएँ
- जाँच करें कि
build.gradle.kts में JADX संस्करण Maven Central पर उपलब्ध संस्करण से मेल खाता है
लेखक
0rshemesh द्वारा निर्मित और अनुरक्षित।
लाइसेंस
यह प्लगइन Apache License 2.0 के तहत लाइसेंस प्राप्त है। विवरण के लिए LICENSE फ़ाइल देखें।