पर सरकारी raspberrypi.org मंच , "Dom" - एक मध्यस्थ ने लिखा है:
मैंने अपना सीरियल नंबर लेने के लिए अपने बोर्ड को ठग लिया है
मैं एक रास्पबेरी पाई के सीरियल नंबर को कैसे संपादित करूं?
/proc/cpuinfo? यकीन नहीं है कि अगर डिकोडर के साथ मदद मिलेगी हालांकि
पर सरकारी raspberrypi.org मंच , "Dom" - एक मध्यस्थ ने लिखा है:
मैंने अपना सीरियल नंबर लेने के लिए अपने बोर्ड को ठग लिया है
मैं एक रास्पबेरी पाई के सीरियल नंबर को कैसे संपादित करूं?
/proc/cpuinfo? यकीन नहीं है कि अगर डिकोडर के साथ मदद मिलेगी हालांकि
जवाबों:
मैं इसे इस फोरम थ्रेड से कॉपी कर रहा हूं ।
डोम के पास सभी स्रोत कोड, वीडियोकोर डिबगर और कई बंद वीसी विशिष्ट उपकरण हैं। और सीरियल नंबर बदलने की अनुमति देने के लिए कोई भी जानकारी जारी करने से कोडक लाइसेंसिंग के लिए तंत्र टूट जाएगा, इसलिए ऐसा कभी नहीं होगा।
इसके अतिरिक्त धागे में पोस्ट किया गया। धारावाहिक को बदलने का एकमात्र कारण किसी और के MP4 लाइसेंस की नकल करना और उसका उपयोग करना होगा। जैसा कि लाइसेंस के आसपास सुरक्षा है। आपका अद्वितीय सीरियल MP4 लाइसेंस से जुड़ा हुआ है, इसलिए यदि किसी को आपकी लाइसेंस कुंजी मिली है, तो भी वे इसके साथ कुछ भी करने में असमर्थ होंगे (जब तक कि वे रास्पबेरी पाई के सीरियल नंबर को बदल नहीं सकते।
अद्यतन: वास्तविक प्रश्न का उत्तर देने के लिए। मैं कहूंगा कि डोम के पास वास्तविक निम्न स्तर के फर्मवेयर के लिए स्रोत है। मुझे लगता है कि वह वास्तव में केवल स्रोत कोड को बदल रहा है जो धारावाहिक को पढ़ता है और इसे एक अलग मान वापस करने के लिए मजबूर करता है। मुझे ईमानदारी से संदेह है कि यह वास्तव में बदल गया था (सीपीयू पर मेरा मतलब है), और अधिक जैसे उसने एक अलग धारावाहिक को वापस करने के लिए कुछ फर्मवेयर कोड को बदल दिया। प्रश्नकर्ता से भी क्षमा याचना, हम सभी ने आपको केवल "क्यों? अच्छा नहीं है। आपका चोरी" प्रश्न का उत्तर देने के बजाय। मेरी गलती।
जहां तक यूजर्स के प्रोग्राम का सवाल है, उन्हें फेक करना आसान है और किसी भी फाइल के बारे में सिर्फ कॉन्टेंट तैयार करना। उदाहरण के लिए, मान लीजिए कि सी प्रोग्राम /proc/cpuinfoसीरियल नंबर को सत्यापित करने के लिए फ़ाइल का उपयोग कर रहा है । कार्यक्रम कॉपी-संरक्षित है और धारावाहिक से जुड़ा हुआ है, और मेरे पास स्रोत कोड नहीं है। हालाँकि, मैं अभी भी चला सकता हूँ strace program 2>&1 | grep cpuinfo, जो कुछ इस तरह प्रकट करेगा:
open("/proc/cpuinfo", O_RDONLY) = 3
इस बिंदु पर, मैं cpuinfo.soनिम्नलिखित फ़ंक्शन के साथ एक छोटी सी लाइब्रेरी बना सकता हूं :
int open(const char *file, int flags) {
static int (*real_open)(const char *file, int flags);
if(!real_open) real_open = dlsym(RTLD_NEXT, "open");
if(!strcmp(file, "/proc/cpuinfo")) file = "/tmp/cpuinfo";
return real_open(file, flags);
}
जैसा कि आप देख सकते हैं, मैं जाँच कर रहा हूँ कि लाइब्रेरी का उपयोगकर्ता खोलने की कोशिश करता है या नहीं /proc/cpuinfo, इस स्थिति में मैं उसके /tmp/cpuinfoबजाय खुलता हूँ ।
तब मैं मूल कॉपी-संरक्षित प्रोग्राम को LD_PRELOAD=/path/to/cpuinfo.so programचलाऊंगा, और यह /proc/cpuinfoबाकी फाइलों के साथ सही तरीके से काम करते हुए, यह सोचकर मेरी नकली फाइल को पढ़ेगा ।
ध्यान दें कि यदि कॉपी-संरक्षित सॉफ़्टवेयर में कर्नेल ऑब्जेक्ट शामिल हैं, तो इसे मूर्ख बनाना बहुत कठिन होगा, क्योंकि यह सीधे हार्डवेयर तक पहुंच सकता है। हालांकि, इस तरह के सॉफ्टवेयर केवल कर्नेल के साथ ही काम करेंगे जिसके लिए इसे बनाया गया था, जिससे इसे वितरित करना काफी अव्यवहारिक हो गया।