मुझे रिएक्ट नेटिव 'index.android.bundle' फ़ाइल से डर लगता है। क्योंकि उस 'बंडल' फ़ाइल में एप्लिकेशन संपूर्ण स्रोत कोड और मूल तर्क रहस्य उजागर हो सकते हैं।

लेकिन हाल ही में, मैंने एपीके फाइलों में से एक में बाइनरी स्वरूपित 'index.android.bundle' देखा है। मुझे आश्चर्य हुआ कि यह कैसे संभव है, वे किस तरह की तकनीक का इस्तेमाल करते हैं। अगर किसी को इस अस्पष्टीकरण तकनीक के बारे में पता है तो कृपया अपने विचार साझा करें।

प्रतिक्रिया मूल निवासी बाइनरी स्वरूपित स्क्रिप्ट

0
Manikanta66 30 अक्टूबर 2020, 11:07

1 उत्तर

सबसे बढ़िया उत्तर

संपादित करें:

आपके द्वारा अटैच किया गया स्क्रीनशॉट देखा। मेरे दिमाग में यह आया कि देव ने शायद index.android.bundle फ़ाइल को एन्क्रिप्ट किया था। यह पता लगाने की कोशिश की कि यह कैसे किया जा सकता है और मुझे लगता है कि मुझे वही काम करने के लिए बहुत ही समान श्रृंखला/लिंक मिल गए हैं। हालांकि एन्क्रिप्शन की विधि 100% से मेल नहीं खाती/मिलती नहीं है, लेकिन यह मुझे मिला सबसे अच्छा शॉट है (अभी के लिए!)।

रिएक्टिव नेटिव एंड्रॉइड ऐप(1/2): डीकंपाइल

रिएक्टिव नेटिव एंड्रॉइड ऐप (2 में से 2): सुरक्षा

प्रतिक्रिया मूल निवासी Android ऐप (Github): wooyeol


पहले उत्तर (हेर्मिस पर आधारित):

मुझे लगता है कि यह अस्पष्ट तकनीक "हर्म्स" का उपयोग करती है, जो एक ओपन-सोर्स जावास्क्रिप्ट इंजन है जो रिएक्ट नेटिव के लिए अनुकूलित है। मैंने जो पाया वह यह है कि, हेमीज़ आपको अपना जेएस कोड (जो पहले से ही आरएन का उपयोग करके बदसूरत हो जाता है) को बाइटकोड में बदलने में मदद करता है।

इसका उद्देश्य ऐप्स की इंस्टॉल स्पीड को बढ़ाना है क्योंकि ऐप्स के पार्सिंग और कंपाइलेशन चरण, जो ज्यादातर ऐप इंस्टॉल होने के बाद होता है, पहले से ही बाइट प्रीकंपिलेशन का उपयोग करके यहां किया जाता है। लेकिन जैसा कि उल्लेख किया गया है, यह कोड को index.android.bundle फ़ाइल में बाइटकोड में बदलने में भी मदद करता है, जो कि चिंता का विषय है।

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

जावा - क्या बाइनरी कोड बाइटकोड के समान है?

रिएक्ट नेटिव 0.62 में, एक हस्ताक्षरित एपीके बनाने के बाद, index.android.bundle एक बाइनरी फ़ाइल है

प्रतिक्रिया-मूल 0.61.2 हेमीज़ डिसएम्बलिंग index.android.bundle के साथ

अब मैं इसे अभी RN ऐप के लिए नहीं कर सकता, लेकिन आप इसे करने का प्रयास कर सकते हैं (Hermes को सक्षम करें और अपने ऐप या डेमो ऐप पर index.android.bundle को जेनरेट और चेक करें) और देखें कि क्या यह उसी प्रकार का जेनरेट करता है या नहीं जैसा आपने देखा आउटपुट।

इसके अलावा, आप हेमीज़ और डीकंपिलेशन पर कुछ मदद के लिए इन लिंक्स को देख सकते हैं।

हेमीज़- रिएक्ट नेटिव के लिए एक नया जावास्क्रिप्ट इंजन

हेमीज़ का उपयोग करना - मूल निवासी डॉक्स प्रतिक्रिया करें

डीकंपाइल रिएक्ट नेटिव index.android.bundle

साथ ही, यह लिंक इस बारे में बात करता है कि बनाए गए जेएस बंडल पर एन्क्रिप्शन कैसे जोड़ा जाना चाहिए/नहीं। हालाँकि यह 2015 से है, फिर भी यह आपको एक शुरुआती बिंदु दे सकता है।

JS कोड प्रोटेक्शन: इस पर Encryption करना है या नहीं?


मैं रिएक्ट नेटिव और इसके विभिन्न पहलुओं के लिए भी अपेक्षाकृत नया हूँ। साथ ही, यह मेरा पहली बार SO प्रश्न का उत्तर दे रहा है। तो आशा है कि यह मदद करता है।

पी.एस. जो कोई भी इसे पढ़ता है, कृपया मुझे सुधारें/संपादित करें यदि मैं कहीं अपने स्पष्टीकरण में गलत हूं, साथ ही इसके लिए कुछ सीखने के लिंक भी। साथ ही, इसे एक स्वीकृत चेकमार्क दें ✅ (या इसे जो भी कहा जाता है) यदि यह उत्तर प्रत्यक्ष हिट था!

1
Krishn Agarwal 1 जून 2021, 22:09