المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : منظومة الحماية بالإعتماد على License File


mohfa
11-11-2011, 04:17 PM
السلام عليكم .
الليوم اقدم لكم MH License Management Beta او منظومة الحماية Beta بالإعتماد على License File والذي يقوم بانتاج ملفات ال Licenses .
يمكن إستعماله لانتاج برامج Trials او Full version او بمعنى اخر Shareware او نسخة كاملة .

بالاعتماد على :
* الرقم التسلسلي لل Hard drive او ال Serial Number الحقيقي ليس الخاص بال Volume . لا تحتاج هذه الخاصية ل admin privileges .
* المعلومات الخاصة بال BIOS + ال Serial Number الحقيقي لها كذلك هذه الخاصية لا تحتاج ل admin privileges .
* المعلومات الخاصة بال CPU + ال Serial Number الحقيقي لها إن وجد كذلك هذه الخاصية لا تحتاج ل admin privileges .
* إنتاج معرّف وحيد وخاص بالجهاز او ال Machine Unique ID بالاعتماد على المعلومات اعلاه . وبناً على هذا المعرّف او ال Machine Unique ID يمكن إنتاج ملف License للزبون ; بحيث هذا ال License file لا يمكن نقله لجهاز اخر غير الجهاز المعتمد في انتاج ال Machine Unique ID .
* إستعمال Vendor ID او المعرف الخاص بك كبائع المنتج .

وفي الاخير يُرسل ال License Key للزبون مع ملف ال License .
لفهم الدوال المستعملة الرجوع الى ملف MHLicInterface.pas
- ملاحظة :
ملف ال License الناتج مشفر.
تمت تجربة المنظومة مع WinXP و ال Win7 مع او بدون admin privileges .

وفي الاخير كما يقال لا توجد حماية 100% , والكمال لله وحده سبحانه .
في انتظار نتائج تجاربكم وإقتراحاتكم .
والسلام عليكم ورحمة الله وبركاته

تقبلوا تحياتي محمد

kachwahed
11-11-2011, 07:14 PM
وعليكم السلام ورحمة الله
لا تحتاج هذه الخاصية ل admin privileges .
غير أنها بحاجة إلى تفعيل خاصية S.M.A.R.T
http://www.delphi4arab.com/forum/showthread.php?t=4240
والله أعلم.

mohfa
11-11-2011, 07:27 PM
نظرة سريعة على الامثلة الموجودة داخل المجلد samples :
المشروع Generate User Info :
يمكن بناء تطبيق بناءً على هذا المثال تكون مهمته الحصول على المعلومات المطلوبة من الزبون كـ الرقم التسلسلي لل HDD , الاسم ...الخ وبالطبع الحصول على ال Machine Unique ID .
بعد ذلك تُرسل لك هاته المعلومات لإنتاج ال License File .

المشروع Is For This Application :
هذا المثال يعطي نظرة سريعة عن كيفية التحقق من ان هذا ال License File مخصص لهذا التطبيق , ويمكن استعماله للتحقق من انه لم يتم التعديل او التغيير على التطبيق وسوف يتم زيادة خصائص اخرى ان شاء الله تخص هذه النقطة .

المشروع Is For This Owner :
هذا المثال يبين كيفية التاكد من ان هذا ال License File يخص هذا الزبون وليس شخص اخر , عملية التاكد تعتمد على اربع نقاط او واحد منها :
تحقق من ان :
1: هذا هو الزبون صاحب المعلومات المخزنة في ال License file بناء على اسمه , يعني يجب على الزبون ادخال اسمه صح كما تم إعتماده في إنشاء ال License File .
2 : هذا هو الزبون صاحب المعلومات المخزنة في ال License file بناء على اسم المؤسسة , يعني يجب على الزبون ادخال اسم المؤسسة صح كما تم إعتماده في إنشاء ال License File .
3 : هذا هو الزبون صاحب المعلومات المخزنة في ال License file بناء على عنوان الايميل , يعني يجب على الزبون ادخال عنوان الايميل صح كما تم إعتماده في إنشاء ال License File .
4 : هذا هو الزبون صاحب المعلومات المخزنة في ال License file بناء على Machine Uniqe ID , يعني يجب الحصول وحساب معرف الجهاز او ال Machine Unique ID بالطريقة الصحيحة لتتم المقارنة , وهذا بدون تدخل الزبون لان المنظومة تقوم بالحساب بطريقة ذاتية بناء على الطريقة التي تمت بها عند إنشاء ال License file .
5 : : هذا هو الزبون صاحب المعلومات المخزنة في ال License file بناء على الرقم التسلسلي الحقيقي لل HDD .

المشروع License Type : هذا المشروع يبين طريقة الحصول على طبيعة هذا ال License file هل هو Trial او Full وكذلك الحصول على معلومات الزبون المخزنة في ال License File .


غير أنها بحاجة إلى تفعيل خاصية S.M.A.R.T

المنظومة تقوم بعملية التحقق من S.M.A.R.T SUPPORT .
هي عملية ذاتية

اخي kachwahed هل جربتها ام لا ؟

B.M.AbdelAziZ
15-11-2011, 01:37 PM
السلام عليكم ورحمة الله

لم اتصفح المرفق بعد، عند قرائة سريعة للمحتوى لم تذكر شيئ عن :
1- التاريخ او مدة صلاحة الLicense
2- امكانية اكثر من مستخدم/جهاز للLicense
3- امكانية استخدام موقع للتحقق من الLicense

أمثلة للتوضيح أكثر
1-
صلاحية الLicense متعلقة بالتاريخ:
صالحة لمدة سنة ونصف
صالحة الى حد تاريخ معين
مثلا زبون اشترى تطبيق قواعد بيانات سنة 2008 لا يمكنه استخدامه لانشاء قاعدة بيانات لسنة 2007
2-
عدد مستخدمي الLicense:
برنامج/تطبيق/منظومة قواعد بيانات من نوع خادم/عميل الLicense لثمانية اجهزة
زبون لديه شبكة محلية بها عشرة اجهزة يمكن لثمانية منها العمل بنفس الوقت
3-
سكريبت php متعلق بالLicense يضعه المطور/المبرمج بموقعه حيث يمكن للزبون انطلاقا من الموقع انشاء ملف الLicense أو التحقق منها

kachwahed
15-11-2011, 02:58 PM
جربهتا الآن سريعا:
رسالة خطأ AV عند (السطر 78، الملف samples\Generate User Info\Unit1.pas):
Label2.Caption:=MH_GenerateMachineID(True,True,Tru e);
وخطأ آخر عند تصدير ملف ini

بعض الملاحظات:
- الخطوات طويلة نوعا ما
- صيانة المتغيرات النصية (دعم العربي، حذف الفراغات Trim، حالة الأحرف...)
- تسهيل الاستخدام (توفير SDK)
- أفكار أخرى (عدد الأجهزة في الشبكة، حسب الجهاز HDD أو Flash أو كليهما...)
- اعتماد أرقام عشوائية تحذف عند الاسترجاع (Random)
- حاول جعله في كائن (TMHLicense مثلا) مع خيار تثبيته كمكون
إن أضفت سرقة بعض البايتات (http://www.delphi4arab.com/forum/showthread.php?t=3946) ثم إضافتها بطريقة ديناميكية سيكون رائع...
ثم لماذا PECompact؟
المفتاح يبدو Hex لماذا؟ أيضا ينبغي توليد مفتاح قابل للتداول ومتوسط الطول

المنظومة تقوم بعملية التحقق من S.M.A.R.T SUPPORT .
هي عملية ذاتية
جيد، وماذا إذا لم تكن الخاصية مفعله؟
هل ستقوم بتفعيلها أم ستضطر إلى استخدام WMI وهنا تحتاج إلى صلاحيات على Vista/7

بالتوفيق.

mohfa
15-11-2011, 03:47 PM
اولا شكرا على هذه الردود :
اخي محمد :
فيما يخص النقطة 3 انا اعمل عليها بحيث في النسخة القادمة سوف تكون هناك إمكانية ارسال معلومات الزبون تلقائيا ان تم تفعيلها الى الموقع بحيث تعتمد العملية على ارسال المعلومات الى قاعدة البيانات .
اما إنشاء ملف ال License فهذا يعود الى صاحب التطبيق .
وسوف ارى مايكنني فعله .
اخي kachwahed المنظومة لاتعتمد كليا على S.M.A.R.T فهناك دوال اخرى تعتمد عليها .
فيما يخص الخطاء فهو يخص ال BIOS حاول تغيير هذا :
Label2.Caption:=MH_GenerateMachineID(True,True,Tru e);
الى هذا :
Label2.Caption:=MH_GenerateMachineID(True,True,Fal se);

هذه النقطة لم افهما جيدا :
- اعتماد أرقام عشوائية تحذف عند الاسترجاع (Random)


شكرا لاخي Anter2010 على تنبيهي لهذه النقطة والتي تم حلها باذن الله في النسخة الحالية والتي سوف اقوم بوضعها قريبا ان شاء الله .
تقبلوا تحياتي

kachwahed
20-11-2011, 11:08 PM
هذه النقطة لم افهما جيدا
شيء مثل هذا (http://www.delphi4arab.com/forum/showthread.php?p=31374)
بالتوفيق.

hisham_h_m
25-11-2011, 09:27 AM
بصراحة الموضوع شيق جداً