सु बाइनरी को केवल कॉपी नहीं किया जा सकता (तकनीकी प्रतिक्रिया कृपया)


18

मैं कई सैमसंग उपकरणों और अंतर्निहित "लक्ष्य" निहित है तो बात करने के लिए हो रहा है suमें द्विआधारी /system/xbinऔर स्थापित Superuser.apk

मेरा सवाल यह है कि किसी को फोन को रूट करने के लिए इन सभी हुप्स के माध्यम से कूदना पड़ता है (कस्टम रिकवरी स्थापित करें और प्री-रूट रॉम फ्लैश करें या वर्तमान इंस्टॉलेशन का शोषण करें)? क्या कोई पहले से तैयार किया गया su डाउनलोड नहीं कर सकता, इसे SD कार्ड में स्थानांतरित कर सकता है, और इसे adb के माध्यम से चला सकता है? रोम को "पूर्व-जड़" बनाने के लिए जो चीज लगती है, वह यह है कि इसमें सुपरयूज़र और सु बाइनरी उनके संबंधित सिस्टम पथ में हैं। मैं यह नहीं देखता कि यह इतना महत्वपूर्ण क्यों है कि इसे कहां से चलाया जाता है /system/xbin

जवाबों:


24

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

बाह्य संग्रहण पर मौजूद फ़ाइलों में निष्पादन योग्य और सेट्यूइड अनुमति बिट्स सेट नहीं है और इसे रूट अधिकारों के बिना प्रदान नहीं किया जा सकता है। ध्यान दें कि आमतौर पर बूट करने के लिए निष्पादन को रोकने के लिए एसडी कार्ड को 'noexec' ध्वज के साथ लगाया जाता है:

shell@android:/sdcard $ ./su
/system/bin/sh: ./su: can't execute: Permission denied
126|shell@android:/sdcard $ chmod 4755 su
Unable to chmod su: Operation not permitted
10|shell@android:/sdcard $ mount | grep /mnt/sdcard
/dev/block/mmcblk0p1 /mnt/sdcard vfat [...],noexec,[...]

यही कारण है कि मूल रूप से आप suएसडी कार्ड पर कॉपी नहीं कर सकते हैं और फिर खुद को रूट देने के लिए इसे चला सकते हैं।


तो यह केवल एक चीज है जो जड़ को रोकता है, तथ्य यह है कि / sdcard निष्पादन योग्य नहीं है और आप chmod नहीं कर सकते हैं? एक बार सु उपयुक्त स्थान पर है, जहां यह आपके सुनहरे सुनियोजित तरीके से काम किया जा सकता है। मुझे लगता है कि किसी व्यक्ति को बस सु को चलाने से रोकने के लिए सुरक्षा की एक परत होगी। अपने सर्वर और डेबियन बॉक्स पर मैं एक सामान्य उपयोगकर्ता के रूप में सु को नहीं चला सकता, मुझे पासवर्ड के लिए प्रेरित किया जाता है। मुझे लगता है कि धारणा है कि अगर कोई सु स्थापित कर सकता है तो वे पासवर्ड बदलने के लिए छाया फ़ाइल को अधिलेखित कर सकते हैं?
user974896

3
@ user974896: एक गैर-प्रणाली उपयोगकर्ता के लिए यह कहीं और नहीं है कि इसे निष्पादित किया जा सके, और एंड्रॉइड के पास वैसे भी passwdया shadowफाइलें नहीं हैं। आपको वस्तुतः suएक निष्पादन योग्य स्थान पर रखने के लिए रूट की आवश्यकता होती है , यही कारण है कि रूट करने के तरीकों में या तो विशेषाधिकार वृद्धि का शोषण होता है या कस्टम रिकवरी में शामिल होता है (जहां सभी दांव मूल रूप से बंद होते हैं)।
एल्डारैथिस

हाँ। यह उत्तर है।
एंड्रॉइड क्वेसिटो

3
@ user974896: / sdcard noexec आरोहित होने के अलावा, सेटिउड सिस्टम कॉल तभी कहा जा सकता है, जब निष्पादन योग्य में suid अनुमति बिट सेट हो, और chown और chmod सिस्टम कॉल केवल रूट को किसी फ़ाइल के बिट सेट करने की अनुमति देगा रूट के स्वामित्व में (प्रभावी रूप से, केवल रूट एक निष्पादन योग्य बना सकता है जो रूट विशेषाधिकारों के साथ चल सकता है)। कोई भी व्यक्ति कॉल कर सकता है, लेकिन जब तक कॉलर को सुपरयूज़र के डेटाबेस में (या पारंपरिक लिनक्स में, पासवार्ड / शैडो डेटाबेस में) ऐसा करने की अनुमति नहीं दी जाती है, कॉल सफल नहीं होगी। केवल Superuser ऐप (और विशेषाधिकार प्राप्त प्रक्रियाएं) Superuser के डेटाबेस को संशोधित कर सकता है।
रेयान

3
@ user974896: यह, एंड्रॉइड में सामान्य सुरक्षा प्रणाली के अलावा, जिसमें प्रत्येक dalvik एप्लिकेशन अपने स्वयं के उपयोगकर्ता के रूप में चलता है, का अर्थ है कि Superuser के श्वेतसूची में केवल एप्लिकेशन ही बिना तेज रूट के खुद को आगे बढ़ा सकता है, बाकी सभी को मना कर दिया जाएगा (यदि यह है तो) ब्लैकलिस्ट में), या Superuser को अनुमति के लिए उपयोगकर्ता को संकेत देने का कारण होगा।
रेयान

5

रूटिंग में एंड्रॉइड वर्जन के आधार पर कमजोरी का फायदा उठाना शामिल है, इसलिए " फोन को रूट करने के लिए सभी हुप्स के माध्यम से कूदें "

यह एक चिकन और अंडा है!

रूट का दोहन करने के लिए, आपको /systemहैंडसेट पर एक असुरक्षित एडीबी डेमॉन (यानी रिमूव करने की क्षमता ) की आवश्यकता होती है, और एक असुरक्षित एडीबी होने के लिए, आपको रूट की आवश्यकता होती है! और यह भी, आप एक खुला बूटलोडर की जरूरत है।

ज़ीथ्रूश नामक एक कारनामे पर नज़र डालिए, जो गीथूब पर पाया जाता है ; ब्याज की क्रिया को कहा जाता है, do_fault()जहां voldइसके स्वामित्व वाले पाइप से जुड़कर डेमॉन के स्टैक-फ्रेम को "ब्रेक" करने का प्रयास किया जाता है, और इसे कॉपी पॉइंट को इंगित करने के लिए स्टैक पॉइंटर को ओवर-राइट करके क्रैश करने का कारण बनता है। शेल का संस्करण, boomshजो तब से चलता है /data/local/tmp

स्रोत को पढ़ने के बाद, आप अब महसूस करेंगे, कि suबाइनरी की नकल करना हैंडसेट को "जड़" करने के लिए पर्याप्त नहीं है और क्यों हुप्स के माध्यम से कूदना चाहिए। और एसडीकार्ड के लिए फ़ाइल-सिस्टम स्तर पर निष्पादन योग्य बिट अवरुद्ध है, इसलिए, वहां न जाएं - यह स्पष्ट कारणों के लिए है! :)


लिंक के लिए धन्यवाद, मैं उन्हें बाद में पढ़ूंगा। तो भी अगर sdcard कारखाने से 777 chmodded था मैं अभी भी बस इसे डाउनलोड करने और निष्पादित करने से जड़ नहीं बन सकता है?
user974896

1
सही बात! नही जाओ! एक अंतर का एक chmodकोटा नहीं बनाता है और चूंकि कारखाना स्थापित रॉम ने उस एलए को संरक्षित किया होगा जिसे प्राप्त करने के लिए आपको एसडी-की अनुमति प्राप्त करने के लिए रूट की आवश्यकता होती है! :)
t0mm13b

1
अगर यह / प्रणाली / xbin में है तो सु क्या इतना खास बनाता है? यदि आप एडीबी शेल दर्ज करते हैं (या एक सामान्य उपयोगकर्ता के रूप में ऐप चलाते हैं) तो आप एक अप्रकाशित उपयोगकर्ता हैं। जब यह / सिस्टम / xbin में होता है तब र को निष्पादित करना आपको हमारे सैद्धांतिक रूप से chmod 777 / sdcard में इसे चलाने के विपरीत जड़ देता है?
user974896

/system/xbinइस पत्र जारी करने, एक निहित हैंडसेट में निर्देशिका जहां बिजीबॉक्स उपयोगिताओं में जाने है, और ... echo $PATHनिकलेगा / विक्रेता / बिन:: / sbin / प्रणाली / sbin: / system / बिन: / system / xbin <- नोटिस यह! इसकी राह में! आदेश में है कि वहाँ में, आप की जरूरत है तो चिकन और अंडे की स्थितियों का एक बहुत ...: D
t0mm13b

हाँ, मुझे पता है कि यह डिफ़ॉल्ट रूप से कहाँ जाता है। मेरा मतलब है कि वहां इसे चलाने के बारे में क्या खास है। क्यों निष्पादित होगा। / / in / sdcard /, / data /, या कोई भी गैर-रूट आवश्यक निर्देशिका काम नहीं कर रही है, जो यह मानकर फैक्ट्री को 777 पर chmodded निर्देशिका के साथ ROM भेजती है। मेरे लिए मूल रूप से एक ही चीज है जो डाउनलोड करने से रोकती है। और चल रहा है। या यह तथ्य है कि एक गैर-उपयोगकर्ता जो निर्देशिका कर सकता है वह गैर निष्पादन योग्य है या एक बड़ी तस्वीर है।
user974896
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.