حماية قاعدة البيانات برقم الهارد دسك شرح مفصل من الصفر وحتى الاحتراف

الناقل : elmasry | الكاتب الأصلى : zahrah | المصدر : www.arabteam2000-forum.com

اعزائي الكرام في هذا المنتدى المبارك
السلام عليكم ورحمة الله وبركاته
بناء على رغبة الكثير من الاعضاء في معرفة طريقة حماية قاعدة البيانات برقم الهارد دسك فسنبدأ معا خطوه خطوه حتى يتمكن الجميع من فهم آلية طريقة الحماية ولن ابخل على اي شخص بأي معلومة مهما كانت في هذا الموضوع وإن شاء الله ان اصل بكم الى الاحتراف في هذا الموضوع وهذا بجهودكم وتفاعلكم معنا فعلى بركة الله نبدأ

سوف اقوم بتقسيم الموضوع الى ثلاثة اقسام
القسم الاول : كيف تتعرف على رقم الهارد دسك الخاص بك او الذي سوف تضع عليه قاعدة البيانات وتتم الحماية بواسطة الهارد دسك نفسه ومن ثم سوف نتعرف على الفرق بين الارقام العشرية والارقام السداسية العشرية ولن يطول بنا المقام فيها ولكن للمعلومية فقط وسيوضع مثالين لكل منهم لنعرف الفرق بين الارقام واخيرا سأضع الاكواد الخاصه بها .

القسم الثاني : سوف نزيد جرعة المعلومات وسنضيف تعليمات جديده الى الاكود السابقه وكلها عباره عن نماذج مفتوحه للجميع يمكن الاطلاع عليها وسنقوم بالنقاش والشرح لكل تعليمه اضافية للكود السابق

القسم الثالث : حماية جميع الوحدات النمطية برقم سري والغاء تفعيل مفتاح الشفت بواسطة الكود ثم عملية تشفير قاعدة البيانات كلها وزيادة في التعقيد سنجعلها بسيغة MDE فعلى بركة الله نبدأ

القسم الاول :
يمكنك التعرف على رقم الهارد دسك من خلال التالي
1. اذهب الى ابدأ
2. اختر تشغيل
3. اكتب في الحقل العبارة التالية CMD.EXE
4. سيظهر لك موجه الدوس ذو الشاشة السوداء في نهاية العبارة التي تراها اكتب \ CD
يعني اكتب C ثم D ثم السلاش المائل لليسار وهي عبارة معناها تغيير المجلد Change Dirctory
5. اضغط انتر من لوحة المفاتيح
6. سترى محث المشيرة قد اصبح \: C
7. اكتب الان الكلمة التالية VOL وتعني قيمة او رقم الهاردسك وانظر لرقم الهارد دسك الخاص بك
انظر الصورة
Posted Image
هذا الرقم السداسي العشري خاص بجهازي وطبعا يختلف من جهاز الى اخر
9. احفظ رقم الهارد دسك الخاص بك في ورقه فسوف تحتاجه كثيرا هذا الرقم هو رقم الهيكسا ديسمل اي السداسي العشري والذي سوف نقوم بتحويله في قاعدة البيانات فقط بالكود الى رقم عشري

هنا سوف ارفق ثلاثة امثله للمطابقه بين الرقمين ومن اجل التأكد ان الوضع صحيح افتح هذا الرابط بعد ان تحصل على رقم الهارد دسك سواء بالـ Hexadecimal او بالـ decimal
تحويل من عشري الى سداسي عشري الى باينري

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

كود الاستاذ مهند عبادي
http://www.arabteam2000-forum.com/index.ph...ndpost&p=214701

كود الاستاذ رضا عقيل وتطوير ابن مسقط
http://www.arabteam2000-forum.com/index.ph...ndpost&p=122787

كود المبرمج 2003

' لمعرفة السيريال نمبر الخاص بالهاردسك 
 Dim obj_FSO As Object, obj_Drive As Object
 Set obj_FSO = CreateObject("Scripting.FileSystemObject")
 Set obj_Drive = obj_FSO.GetDrive("c:\")
 'MsgBox obj_Drive.SerialNumber
  SerialNumber = obj_Drive.SerialNumber
 Set obj_FSO = Nothing
 Set obj_Drive = Nothing
End Sub


كود زهره لجميع محركات الاقراص فلوبي هارد دسك سيدي روم
'كود زهره رقم 1
'انشئ وحده نمطية جديده وضع فيها هذا الكود
'Insert this code to the module :
Declare Function GetVolumeInformation Lib "kernel32.dll" Alias _
"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal _
lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

'ضع هذا الكود في الوحدة النمطية للنموذج
'Insert the following code to your form:
Function GetSerialNumber(strDrive As String) As Long
Dim SerialNum As Long
Dim res As Long
Dim Temp1 As String
Dim Temp2 As String
Temp1 = String$(255, Chr$(0))
Temp2 = String$(255, Chr$(0))
res = GetVolumeInformation(strDrive, Temp1, _
Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))
GetSerialNumber = SerialNum
End Function

'انشئ زر أمر في النموذج واعطه اسم
'(Command1)
'وضع هذا الكود في حدث عند النقر
Private Sub Command1_Click()
'Replace 'c:\' with the drive you want to find his serial number
Call MsgBox(GetSerialNumber("c:\"))
End Sub


الكود رقم 2
'كود زهره رقم 2
'قم بإنشاء وحده نمطية جديده وضع فيها هذا الكود
Private Declare Function GetVolumeInformation Lib _
"kernel32.dll" Alias "GetVolumeInformationA" (ByVal _
lpRootPathName As String, ByVal lpVolumeNameBuffer As _
String, ByVal nVolumeNameSize As Integer, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength _
As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long

'ضع هذا الكود في النموذج
Function GetSerialNumber(strDrive As String) As Long
    Dim SerialNum As Long
    Dim Res As Long
    Dim Temp1 As String
    Dim Temp2 As String
    Temp1 = String$(255, Chr$(0))
    Temp2 = String$(255, Chr$(0))
    Res = GetVolumeInformation(strDrive, Temp1, _
    Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))
    GetSerialNumber = SerialNum
End Function

'ضع هذا الكود في حدث عند التحميل للنموذج
Private Sub Form_Load()
MsgBox GetSerialNumber("C:\")
End Sub


انتهاء القسم الاول
اختكم
زهره
 
ملف مرفق(ملفات)
 
ملف مرفق  hardsikN.rar (44.97كيلو )