2010-09-03 6 views
9

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

यह wxWidgets लेकिन एक Win32 या अन्य विकल्प का उपयोग ठीक है, एक विंडोज़ अनुप्रयोग के लिए है।

मैं मैक पते के बारे में सोच रहा था लेकिन लैपटॉप के बारे में क्या जो नियमित रूप से पावर सेविंग मोड में नेटवर्क कार्ड को अक्षम कर सकता है? मैं GetCurrentHwProfile पर आया लेकिन यह मुझे बिल्कुल पसंद नहीं है?

+0

हार्डवेयर आईडी सुरक्षित (बदलना मुश्किल) या अद्वितीय हो सकता है - कभी नहीं। –

उत्तर

2

मैं बस मैक पता विधि के साथ जाऊंगा; जब वायरलेस/लैन कार्ड बंद हो जाते हैं तो वे अभी भी नेटवर्क कनेक्शन में दिखाई देते हैं। इसलिए आपको अभी भी मैक प्राप्त करने में सक्षम होना चाहिए।

इस पर विचार करें: जब भी आप अपने वेबसर्वर से संपर्क कर सकेंगे या जो भी आप इन आईडी को सूचीबद्ध कर रहे हैं, तो उपयोगकर्ता पर पर कुछ नेटवर्क कार्ड उपलब्ध कराने के लिए जा रहा है।

ओह, और आप ग्राहक के कंप्यूटर का सीपीयू सीरियल नंबर का उपयोग करने में सक्षम हो सकता है कि यह समर्थन करता है।

+2

दोनों को धोखा दिया जा सकता है। यदि आप सर्वर तक पहुंचने के लिए राउटर से गुज़रते हैं (जो कि मामले होने की संभावना है) तो आप क्लाइंट द्वारा उपयोग किए गए मैक को संबोधित नहीं कर पाएंगे। – Bruno

+0

मुझे लगता है कि सॉफ्टवेयर सीधे क्लाइंट मशीनों पर चलता है, इसलिए मैक पता प्राप्त करना संभव होगा। – msteiger

+0

@ ब्रूनो - मैं कहूंगा कि लिखने योग्य किसी भी जानकारी को धोखा दिया जा सकता है। मैक पता प्राप्त करने के लिए, पीसी पर एक स्थानीय कार्यक्रम इसे निकाला जा सकता है और उसके बाद इसे लाइसेंसिंग सिस्टम –

4

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

मूल रूप से आप CRYPTPROTECT_LOCAL_MACHINE साथ CryptProtectData साथ एक निरंतर जादू मूल्य सांकेतिक शब्दों में बदलना होगा, और परिणाम आपके मशीन आईडी है। दोनों रजिस्ट्री से निकाला -

+0

यह बहुत दिलचस्प है। हम कोशिश कर सकते हैं, अगर हम करते हैं तो मैं वापस पोस्ट करूंगा। –

+1

मैंने इसका परीक्षण किया है और यह काम नहीं करता है। एक ही स्ट्रिंग को एन्क्रिप्ट करना हर बार अलग-अलग परिणाम उत्पन्न करता है। निरंतर 'popptionalEntropy' प्रदान करने में मदद नहीं करता है। –

0
एक सुंदर मृत मस्तिष्क परीक्षण मैं ओएस के ProductID कोड और कंप्यूटर का नाम का उपयोग कर रहा लिए

। वास्तव में सुरक्षित नहीं है, लेकिन वैसे भी यह सभी नाटक सुरक्षा।

संपादित

के बारे में क्या चाबियाँ मैं पढ़ रहा हूँ जॉन के सवाल का जवाब करने के लिए:

माइक्रोसॉफ्ट \ Windows \ सॉफ्टवेयर NT \ CurrentVersion \ ProductID

SYSTEM \ CurrentControlSet \ नियंत्रण \ ComputerName \ ComputerName \ कंप्यूटर नाम

+2

हमने इसे एक बार कोशिश की लेकिन पाया कि कई कॉर्पोरेट मशीनें (क्लोन मशीन), या वेयरज़ेड मशीनें, लाइसेंस कोड साझा करें; इस समाधान को पूरी तरह व्यवहार्य नहीं बनाया गया। – tenfour

+1

@tenfour - मैं पूरी तरह से सहमत हूं कि यह एक बेवकूफ उपाय है। लेकिन मैं अपने "उत्पाद" के साथ सुरक्षा थियेटर खेल रहा हूं, इसलिए इससे इससे ज्यादा कुछ भी लायक नहीं है। मुझे याद है जब मैंने इसे देखा था कि अब भी यूएसबी कुंजी को धोखा दिया जा रहा है। –

+0

विंडोज लाइसेंस का मतलब यह नहीं होगा कि अगर वे ओएस को अपग्रेड करते हैं तो यह टूट जाता है?लेकिन वैसे भी, क्या आप अपने उत्तर पर आपके द्वारा उपयोग की जाने वाली विशिष्ट कुंजी या आपके द्वारा उपयोग किए जाने वाले कोड के साथ विस्तार कर सकते हैं? –

1

यदि आप मशीन जो कुछ भी बता सकते हैं उससे भी खराब होने के लिए कुछ कठिन करना चाहते हैं, तो आपको शायद इस उद्देश्य के लिए समर्पित यूएसबी डोंगल प्रदान करना होगा (केवल एक फ्लैश ड्राइव नहीं)।

+1

जब मैंने कुछ साल पहले देखा तो भी यूएसबी कुंजी को सुरक्षित नहीं होने पर संकेत दिया जा रहा था। लेकिन यह सब $$ तक आता है - आप सुरक्षा में कितना पैसा निवेश करते हैं, जिससे लोगों को क्रैक करने की लागत होती है (साथ ही यह उनके लिए कितना मूल्यवान है)। –

+0

हां, कुछ भी 100% सुरक्षित नहीं है, यह वास्तव में जोखिम मूल्यांकन का मामला है। – Bruno

+0

मैंने यह सुझाव दिया लेकिन ग्राहक इसके लिए नहीं जाएंगे। पीसी से जानकारी ठीक है, स्पूफिंग के बारे में चिंतित नहीं है - लेकिन जब वे वाईफाई या जो कुछ भी बंद करते हैं तो उसे बदलने की जरूरत नहीं होती है। –

1

कैसे जहां खिड़कियों स्थापित किया गया है हार्डडिस्क के सीरियल नंबर का उपयोग कर के बारे में?

समारोह GetVolumeInformation() आप इस तरह के सीरियल नंबर दे देंगे। विंडोज द्वारा असाइन की गई आईडी के बजाय हार्डडिस्क विक्रेता द्वारा निर्दिष्ट आईडी तक पहुंचने के लिए, आप Win32_PhysicalMedia क्लास का उपयोग कर सकते हैं।

ड्राइव जहाँ खिड़कियों स्थापित किया गया है निर्धारित करने के लिए, आप समारोह ExpandEnvironmentStrings()

एक अन्य विकल्प का उपयोग करके चर% windir "का विस्तार कर सकता है, अपनी वास्तुकला की अनुमति देता है, उपयोग करने के लिए UuidCreate() एक यादृच्छिक उत्पन्न करने के लिए है स्थापना समय पर GUID और रजिस्ट्री में इसे स्थायी रूप से सहेजें। यह GUID तब तक आईडी के रूप में उपयोग किया जा सकता है जब तक कि रजिस्ट्री बनी रहती है। एक नया रजिस्ट्री डेटाबेस आमतौर पर एक नई स्थापना के रूप में माना जाता है।

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

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

0

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

निश्चित रूप से सीपीयू आईडी सुरक्षित और स्थिर है !!

1

मुझे लगता है कि अब तक कोई वास्तव में आसान और अनूठी विधि नहीं मिली है।

  1. GetVolumeInformation भी अद्वितीय ID के करीब नहीं पुन: प्राप्त करता .....
  2. किसी भी हार्डवेयर धारावाहिक समस्याग्रस्त है क्योंकि विनिर्माण समर्थित यह हमेशा और विशेष रूप से यह दुनिया भर में अद्वितीय रखने के लिए के लिए
  3. GetCurrentHwProfile retrieves प्रतिबद्ध नहीं कर रहे हैं का उपयोग करने के GUID लेकिन यह मामूली से प्रभावित मूल्य है! हार्डवेयर परिवर्तन ...
  4. उत्पाद कुंजी का उपयोग ... चोरी किए गए सॉफ़्टवेयर से निपटने के लिए यू लाएगा - दुनिया भर में समुद्री डाकू प्रतिष्ठानों के बहुत सारे। वॉल्यूम ID:
  5. खुद GUID और रजिस्ट्री के तहत यह संरक्षण (किसी भी जगह में) छवि की क्लोनिंग द्वारा दोहराव नहीं रोका जाएगा का निर्माण ....
    आदि ... देखने की मेरी दृष्टि से सबसे अच्छा तरीका है गठबंधन है + मैक की सूची + मशीन एसआईडी + मशीन का नाम। और स्पष्ट रूप से सर्वर पक्ष पर लाइसेंस नीति का प्रबंधन करें; 0)

मिकेल का सम्मान करता है।