windows - करन - ई आधार डाउनलोड




कंप्यूटर की विशिष्ट पहचान करने का एक अच्छा तरीका क्या है? (10)

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ क्रिप्टोग्राफी

"मशीनगुइड" कुंजी विंडोज की स्थापना के दौरान विशिष्ट रूप से जेनरेट की जाती है और यह किसी भी हार्डवेयर स्वैप के बावजूद नहीं बदलेगी (बूट-सक्षम हार्ड ड्राइव को बदलने के अलावा जहां ओएस इंस्टॉल किया गया है)। मुझे इस बारे में निश्चित नहीं है।

मेरा सुझाव

आप उस मशीनगुइड, हार्ड डिस्क सीरियल नंबर, मदर बोर्ड सीरियल नंबर और यूयूआईडी का उपयोग कर सकते हैं। साथ में यह SHA 256 या किसी अन्य HASH फ़ंक्शन का उपयोग कर रहा है।

यूयूआईडी - wmic csproduct यूयूआईडी मिलता है

मशीनगुइड - HKEY_LOCAL_MACHINE \ सॉफ़्टवेयर \ माइक्रोसॉफ्ट \ क्रिप्टोग्राफी

हार्ड डिस्क सीरियल नंबर - Wmic डिस्कड्राइव serialnumber मिलता है

बीआईओएस सीरियल नंबर - Wmic bios serialnumber मिलता है

मदर बोर्ड सीरियल नंबर - Wmic बेसबोर्ड serialnumber मिलता है

मैं क्लाइंट के पुनर्विक्रय के लिए कुछ डेस्कटॉप सॉफ़्टवेयर विकसित कर रहा हूं। ग्राहक सॉफ़्टवेयर को प्रतिबंधित करना चाहता है ताकि पंजीकरण कोड एक और केवल एक कंप्यूटर के लिए विशिष्ट हो।

नेटवर्क कार्ड से मैक का उपयोग करने के अलावा, क्या किसी के पास कंप्यूटर की विशिष्ट पहचान करने के लिए कोई अन्य तकनीक है (जो विंडोज और मैक ओएस एक्स दोनों पर काम करती है)?


आप किसी तृतीय-पक्ष लाइसेंसिंग उपयोगिता पर विचार कर सकते हैं जो अधिकतर "सही" प्राप्त करेगा और अतिरिक्त विकल्प के साथ आपको (या आपके ग्राहक) को भी प्रदान करेगा, आवश्यकताएं बदलनी चाहिए (और वे हमेशा नहीं?)। मैं नाम से कुछ विशिष्ट लोगों का उल्लेख करता हूं, लेकिन मैं वास्तव में उन्हें परिचित रूप से परिचित नहीं हूं।


एसएन, हार्डड्राइव, प्रो, राम इत्यादि में जलाए गए कुछ भी हैशिंग के बारे में ... यह हैश तब तक कंप्यूटर के साथ रहेगा जब तक कि इसके हिस्सों को प्रतिस्थापित नहीं किया जाता है।


कंप्यूटर को विशिष्ट रूप से पहचानने का कोई निश्चित तरीका नहीं है, अगर आपको लगता है कि कंप्यूटर कई हिस्सों के साथ बनाया गया है जिसे अंततः बदला जा सकता है।

कुछ हार्डवेयर पार्ट्स - मैक एड्रेस, एचडीडी डिस्क सीरियल नंबर, यहां तक ​​कि मदरबोर्ड सीरियल इत्यादि - "विशिष्टता" के कुछ अच्छे स्रोत हैं, लेकिन जैसा कि आप जानते हैं कि कोई क्लाइंट उस हिस्से को अपग्रेड करने का निर्णय लेता है, जिस पर लाइसेंस निर्भर करता है ... के लिए तैयार रहें कुछ ग्राहक समर्थन। यह भी ध्यान में रखना है कि कुछ हिस्सों को धोखा दिया जा सकता है (मैक उनमें से एक है)।

एक ऑनलाइन लाइसेंस जांच जाने का एक और अच्छा तरीका है - आप सर्वर की ओर से सब कुछ प्रबंधित कर सकते हैं और इसके लिए अपने नियम भी परिभाषित कर सकते हैं (प्रति ग्राहक / इंस्टॉल, समेकन, आदि के कितने लाइसेंस) लेकिन ध्यान देने योग्य बड़ी बात यह है कि क्या होता है कनेक्शन स्थापित नहीं किया जा सकता है?


जहां तक ​​मैंने देखा है, सीपीयू में छापे गए सीरियल नंबर का उपयोग किया जाता था; यह जानकारी (पीएसएन, पेंटियम सीरियल नंबर) को हटा दिया गया है। जानकारी संभवतः अभी भी मौजूद हो सकती है, लेकिन कम से कम पी 3 दुनिया में यह चला गया था। साथ ही, मुझे लगता है कि मेजबान के लिए उपयोग किए जाने वाले मुख्य इंटरफ़ेस के लिए एनआईसी पर मैक पते की स्पष्ट पसंद को वास्तविक संभावना माना जाना चाहिए। जब तक कि आपका ग्राहक उन होस्टों पर ईथरनेट इंटरफेस मौजूद न होने की अपेक्षा नहीं कर रहा है, जिन्हें वे बेचते हैं।


जिस विचार के साथ मैं बात कर रहा हूं वह कुछ धारावाहिक संख्याओं या अद्वितीय आईडी से हार्डवेयर से संबंधित है और उन्हें एक साथ रख रहा है।

चीजें जो अपग्रेड हो जाती हैं: -मेमरी-एमएसीएस (स्पूफ किया जा सकता है, यूएसबी एडाप्टर प्लग इन हो जाते हैं आदि)

ऐसी चीजें जिन्हें अक्सर अपग्रेड नहीं किया जाता है: -CPU -BIOS -Motherboard

WMIC का उपयोग करना कुछ जानकारी प्राप्त करने का एक शानदार तरीका हो सकता है, मैं उन चीजों को पकड़कर शुरू करूंगा जो अक्सर पहली और पसंदीदा पसंद के रूप में नहीं बदलते हैं, मैं कम से कम 2 सीरियल नंबर या डिवाइस बनाने के लिए उपयोग करने के लिए फिंगरप्रिंट करने में सक्षम होना चाहता हूं एक पंजीकरण कुंजी।

wmic cpu get DeviceId /format:value

वह सीपीयू आईडी ले जाएगा, आप उस कमांड को चलाने के लिए चला सकते हैं:

1 - सीपीयू (सीपीयू: डिवाइसआईडी) 2 - मदरबोर्ड (बेसबोर्ड: सीरियल नम्बर) 3 - बीआईओएस (बायोस: सीरियलनंबर)

यदि आपको कम से कम 2 आबादी वाले मूल्य नहीं मिलते हैं, तो पकड़ लें

4 - नेटवर्क एडाप्टर - (एनआईसी: मैकएड्रेस) 5 - रैम - (मेम्फिजिकल: सीरियल नम्बर)

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

आप एक डिफी-हेलमैन कुंजी एक्सचेंज स्कीम का उपयोग कर सकते हैं ताकि उपयोगकर्ता अपने हार्डवेयर आईडी के साथ एक पेलोड के रूप में एक निजी / पुलिक कुंजी जोड़ी उत्पन्न कर सके, फिर यह जानकारी पंजीकरण सर्वर तक पास करें जहां पंजीकरण सर्वर सार्वजनिक / निजी कुंजी का उपयोग करेगा पेलोड को डिक्रिप्ट करें और अंतिम उपयोगकर्ता को वापस लौटने के लिए पंजीकरण कुंजी की गणना करें। मैं जेडब्ल्यूटी के पेलोड में शामिल सार्वजनिक कुंजी के साथ चीजों को आगे और आगे पास करने के लिए जेडब्ल्यूटी का उपयोग करना पसंद करता हूं। उम्मीद है की वो मदद करदे।

यूयूआईडी का उल्लेख ऊपर किया गया था और यह एक अच्छा विचार है कि आप इसे प्राप्त कर सकते हैं:

wmic csproduct get UUID /format:vale

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


मुझे इस पर कुछ अनुभव है। मेरे समाधान में जब हम ग्राहक को उत्पाद बेचते हैं तो हम सेवा कुंजी जारी करते हैं।

उस समय क्लाइंट एप्लिकेशन इंस्टॉल करता है, यह क्लाइंट मशीन के मदरबोर्ड सीरियल को पढ़कर एक कुंजी उत्पन्न करता है। क्लाइंट को उत्पाद कुंजी को सक्रिय करने के लिए हमारे संगठन को इंस्टॉलेशन में जेनरेट की गई कुंजी और ईमेल को ईमेल करना होगा।

हम समस्या सक्रियण कुंजी पर संगठन में एक व्यवस्थापक आवेदन बनाए रखते हैं। हम किसी विशेष सेवा कुंजी के लिए कुंजी के लिए केवल एक सक्रियण कुंजी प्रदान करते हैं।

हमने प्रतियों की संख्या बेची और यह बिना किसी मुद्दे के चलाता है। लेकिन फिर हमने कुछ कंप्यूटरों को पाया जो मदरबोर्ड सीरियल नंबर प्रदान नहीं करते हैं। वे मशीन मदरबोर्ड सीरियल नंबर के रूप में शून्य मान लौटती हैं। फिर भी हम इस मुद्दे को ठीक करने की कोशिश कर रहे हैं।


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

ऐसा लगता है कि यह एक वास्तविक आवश्यकता थी। मेरा पहला काम क्लाइंट को आजमाने और मनाने के लिए होगा कि यह एक बुरा विचार था।

कारण यह है कि ये योजनाएं व्यावहारिक रूप से आपके कोड को क्रैक होने से कभी नहीं रोकती हैं। हालांकि वे आपके असली ग्राहकों के जीवन को कठिन बनाते हैं। मुझे किसी भी अन्य उद्योग के बारे में सोचना मुश्किल लगता है जो अपने वास्तविक ग्राहकों को उन योजनाओं के साथ परेशान करने के तरीके से बाहर निकलता है जो कभी भी अपने लक्ष्यों को प्राप्त नहीं करते हैं (सरकारी सेवा के अलावा ,-)।

यदि आपको ऐसा करना है, तो मैं अनुबंधिक दायित्व को पूरा करने के लिए केवल एक टोकन प्रयास करता हूं (हालांकि अपने ग्राहक को यह बताना न दें)। मैक पता लेना (या एक यादृच्छिक संख्या अगर, $DEITY forbid, कंप्यूटर के पास नेटवर्क कार्ड नहीं था) अनुरोध कुंजी के रूप में और सक्रियण कुंजी प्राप्त करने के लिए केवल एक ASCII स्ट्रिंग के साथ XOR लिए प्रोग्राम का उपयोग करके, ऐसा लगता है व्यावहारिक दृष्टिकोण। मैं दोनों चाबियाँ भी स्टोर करूंगा क्योंकि आप नहीं चाहते हैं कि सॉफ़्टवेयर डी-एक्टिवेट करें यदि वे सिर्फ अपने नेटवर्क कार्ड (या यहां तक ​​कि मदरबोर्ड) को बदलते हैं - वे अभी भी उसी कंप्यूटर के रूप में देखते हैं और सॉफ़्टवेयर काम करना बंद कर देता है तो खुश नहीं होगा।

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

हार्डवेयर की एक विशिष्टता पर निर्भर सभी योजनाओं के साथ मुख्य समस्या यह है कि ग्राहक उस हार्डवेयर को बदलने का विकल्प चुन सकता है:

  • अपनी डिस्क सामग्री को एक बड़ी हार्ड डिस्क पर भूत करना एचडी सीरियल नंबर बदलता है।
  • सीपीयू सीरियल नंबरों का उपयोग करने का मतलब है नवीनतम इंटेल bigmutha CPU को अपग्रेड करने से आपके सॉफ़्टवेयर को मार दिया जाता है।
  • मैक पते का उपयोग करने का मतलब है कि वे अपने एनआईसी को नहीं बदल सकते हैं।

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


या आपके पास कोई सक्रियता कोड नहीं हो सकता है और यह सुनिश्चित कर सकता है कि आपके पास EULA में लेखापरीक्षित अधिकार हैं और समय-समय पर ऑडिट करने का अधिकार उपयोग करें।

ओरेकल के लिए अद्भुत काम करता है।


रजिस्ट्री खोलें और नेविगेट करें

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ क्रिप्टोग्राफी

"मशीनगुइड" नामक कुंजी खोजें, यह कुंजी विंडोज की स्थापना के दौरान विशिष्ट रूप से जेनरेट की गई है और यह किसी भी हार्डवेयर स्वैप के बावजूद नहीं बदलेगी (बूट-सक्षम हार्ड ड्राइव को बदलने के अलावा, जहां ओएस इंस्टॉल है)। इसका मतलब है कि यदि आप प्रति ओएस पर ट्रैकिंग स्थापना रखना चाहते हैं तो यह एक और विकल्प है। यह तब तक नहीं बदलेगा जब तक आप विंडोज़ की ताजा पुनर्स्थापना नहीं करते।





uniqueidentifier