मैं डाउनलोड की गई एपीके फ़ाइल की प्रामाणिकता को कैसे सत्यापित कर सकता हूं?


62

Google मैप्स का नवीनतम अपडेट मेरे देश में उपलब्ध नहीं है, इसलिए मैंने "Google मैप्स 5.4.0 APK" के लिए googling द्वारा एक संस्करण डाउनलोड किया। मैंने वास्तव में इसे पा लिया था, लेकिन अब मुझे आश्चर्य है कि मैं कैसे बता सकता हूं कि क्या यह वास्तव में बाजार के समान संस्करण है।

मैं यह कैसे सुनिश्चित कर सकता हूं कि इसमें छेड़छाड़ नहीं की गई है? क्या ऐप्स किसी भी तरह से साइन इन हैं? क्या हस्ताक्षरों की जाँच का कोई तरीका है?


यदि आप यात्रा करते हैं, तो आपके मोबाइल से, पृष्ठ:, m.google.com/mapsक्या यह आपको डाउनलोड लिंक या कुछ समान प्रदान करता है?
निकोलस

@ निकोलस: यह बाज़ार से जुड़ता है, जहाँ से मैं इसे डाउनलोड नहीं कर सकता।
नाथन फेलमैन

आश्चर्य नहीं कि गूगल से आ रहा है। वैसे, और मुझे पता है कि मैं आपके मूल प्रश्न का उत्तर नहीं दे रहा हूं, लेकिन क्या आपने MapDroyd का परीक्षण किया है ?
निकोलस

@ निकोलस: मैंने नहीं किया है, और मैं वास्तव में अपने दिन के लिए दिन के नेविगेशन के लिए वेज़ का उपयोग करता हूं। Google मानचित्र केवल एक उदाहरण है। Google पुस्तकें एक अन्य उदाहरण है, Google Streetview अभी तक एक और (वास्तव में ऐसा लगता है कि केवल Google ऐप्स मुझे यह परेशानी देते हैं ...)
नाथन फेलमैन

1
यदि आपके पास एक दूसरा ऐप है जो "प्रामाणिक" है और एक ही विक्रेता से आता है, तो आप तुलना कर सकते हैं कि क्या दोनों ऐप्स समान कुंजियों / पहचान का उपयोग करके हस्ताक्षरित हैं: android.stackexchange.com/a/208326/2241
रॉबर्ट

जवाबों:


71

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

एंड्रॉइड ऐप्स को .jar फ़ाइलों के सामान्य तरीके से साइन इन किया जाता है (.apk वास्तव में सिर्फ एक विशेष .jar है जो सिर्फ एक विशेष .zip है) हालांकि प्रमाण पत्र की प्रामाणिकता का पता लगाने के लिए यह तुच्छ नहीं हो सकता है जब तक कि आप कुछ अच्छा नहीं जानते। से तुलना। यह मूल रूप से फोन खुद क्या करता है - सत्यापित करता है कि कुछ ऐसा है जो एक ही पार्टी से होने का दावा करता है क्योंकि वास्तव में फोन पर पहले से ही कुछ है - फोन अज्ञात हस्ताक्षरकर्ताओं के साथ चीजों को स्थापित करने से इनकार नहीं करता है, यह केवल (वस्तु / स्पष्ट आवेदन के लिए) हो सकता है का डेटा) स्पष्ट पूर्वाभास जब कुछ नया कुछ पुराने से मेल नहीं खाता है जिसका वह दावा करता है।

आपको जारसिग्नर और कीटूल की आवश्यकता होगी। मेरा मानना ​​है कि ये JDK से आते हैं जो SDK के बजाय Android SDK के लिए एक शर्त है।

पहले आप .apk में निहित सार्वजनिक कुंजी को सत्यापित करने का प्रयास करना चाहते हैं। आमतौर पर यह META-INF / CERTS.RSA में होता है, लेकिन यह किसी अन्य फ़ाइल में हो सकता है - अनज़िप -l आपको बताएगा। आप यह देखना चाहते हैं कि आप इसके बारे में क्या पता कर सकते हैं:

unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert

यह इस बारे में बहुत सारी जानकारी को डंप करने वाला है कि हस्ताक्षरकर्ता किसका दावा करता है। कुछ प्रमाण पत्र स्पष्ट रूप से स्वयं ज्ञात पार्टियों द्वारा हस्ताक्षरित हैं, लेकिन यह पता लगाने के बिना कि मुझे कैसे पता चलेगा, मुझे संदेह है कि आप ऐसा कुछ कर सकते हैं:

unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5

यदि आपके पास उसी लेखक से एक प्रसिद्ध विश्वसनीय एपीके है, जिसने उसी प्रमाण पत्र का उपयोग किया है। मैं मान रहा हूं कि समान MD5 राशि वाले प्रमाण पत्र पर्याप्त हैं।

मान लें कि आपने प्रमाण पत्र पर भरोसा करने का फैसला किया है, तो आप देख सकते हैं कि इसका उपयोग .apk के भीतर प्रत्येक फ़ाइलों पर हस्ताक्षर करने के लिए किया गया है।

jarsigner -verbose -verify suspect.apk

(यदि पुरालेख में एक से अधिक .RSA फ़ाइल है, तो आपको प्रत्येक फ़ाइल पर हस्ताक्षर करने के लिए किस प्रमाणपत्र (नों) का उपयोग किया गया है, यह बताने के लिए -certs ध्वज जोड़ना चाहिए, ताकि आप सुनिश्चित कर सकें कि इसका प्रमाण पत्र आपके द्वारा सत्यापित है)


9
क्या किसी दिए गए apk को सत्यापित करने का एक तरीका Google Play स्टोर पर आधिकारिक एक जैसा है?
ब्रायस

@ मेरे पास एक ही सवाल है। क्या आपको जवाब मिला?
कैसर सोज़े

@ क्रिस स्ट्रैटन क्या किसी डिवाइस से Google मैप्स APK को कॉपी करना संभव है? फिर जैसा कि आपने कहा था कि कोई भी सीरियलों की जांच कर सकता है।
कैसर सोज़े

इसके अलावा, आप निम्न एप्लिकेशन के साथ एक डिवाइस से एपीके निकाल सकते हैं: play.google.com/store/apps/details?id=com.ext.ui&hl=en सर्वश्रेष्ठ, पॉल। [मॉडरेटर
फायरलॉर्ड

4

इसमें (अब) एक apksignerउपकरण build-toolsहै जो आप चाहते हैं। से डॉक्स :

जाँचें कि क्या एपीके के हस्ताक्षरों की पुष्टि सभी एंड्रॉइड प्लेटफ़ॉर्म पर मान्य होने की उम्मीद है जो एपीके का समर्थन करता है:

apksigner verify [options] app-name.apk

1

आप Free VirusTotal.com वायरस चेकर को एपीके अपलोड करने का भी प्रयास कर सकते हैं । यह एपीके के लिए एक अद्वितीय हैश उत्पन्न करेगा और यदि दूसरों ने इसे (बहुत संभावना) परीक्षण करने के लिए पहले ही अपलोड कर दिया है, तो आपके पास एक विचार होगा कि एपीके वैध है।

सेवा 60 से अधिक वायरस स्कैनर के साथ एपीके को भी स्कैन करेगी और आपको बताएगी कि क्या यह मानता है कि इसमें पहले से पाए गए वायरस के समान हस्ताक्षर हैं।


0

एक संदिग्ध apk फ़ाइल से प्रमाण पत्र की तुलना करने के लिए, शायद एक विचार यह है कि इसे अपने फोन पर आधिकारिक प्ले स्टोर पर डाउनलोड करें, अपने कंप्यूटर पर बैकअप करें और बैकअप निर्देशिका में जाएं, संबंधित एपीके फ़ाइल का चयन करें और उसी चेक को करें। आप डिवाइस-डिफॉल्ट एप्लिकेशन (जैसे किसी com.google.android। *) पर चेक द्वारा Google प्रमाणपत्र भी देख सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.