الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لدى طريقة جديد لحماية برنامجك من إستخدام غير العملاء

مغلق
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

من الأخ المسلم (أسامه عبد الصادق)

لدى إن شاء الله طريقة جديدة لحماية برنامجك من إستخدام غير العملاء أو المصرح لهم بالإستخدام :

وهى معتمدة على سيريال نمبير الإسطوانة فلكل إسطوانة سيريال نمبير ولكن يتغير بعد نسخ الإسطوانة فى كل مرة نسخ ويمكن التغلب على هذه المشكلة بقفل

الإسطوانة من النسخ .

ولكن ممكن للمستخدم أن ينزل البرنامج على الجهاز ويشغل البرنامج من على الجهاز مباشرة إن كان البرنامج لا يعمل إلا على إسطوانة واحد وهى الإسطوانة

الأصلية ــ التى نسختها أنت كمبرمج ــ ولحل هذه المشكلة نستخدم الكود الذى يمنع تشغيل البرنامج إلى من خلال إسطوانة فقط .

وبالتالى المستخدم لا يستطيع تشغيل البرنامج إلا من خلال الإسطوانة الأصلية التى نسخها المبرمج (أو) من على الجهاز نفسه وهذا أيضا غير ممكن .

وأظن أن هذه الطريقة تكون ذا جدوى كبيرة مع ملفات الــ EXE بدون مرفقات مثل قاعدة بيانات ..... إلخ

إلا إذا طور أحد الأعضاء هذه الطريقة وإليكم ...

الأكواد :

أولا : كود معرفة سيريال نمبير الإسطوانة

اكتب فى 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

ثم اكتب فى التعريفات العامة للفورمة الأولى للبرنامج كود التالى :

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()

Dim S As Long

S = GetSerialNumber("h:\")

Text1.Text = S

If Not Val(Text1.Text) = "رقم سيريال الإسطوانة بعد نسخ البرنامج عليها" Then

MsgBox "عفوا البرنامج لن يعمل"

End

End If

End Sub

والكود الذى يمنع البرنامج من العمل إلا من على قرص مدمج فقط و لاعمل من على الهارد هو

اكتب فى التعريفات العامة الكود التالى

Private Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" _

(ByVal nDrive As String) As Long

واكتب فى الفورم لوود للفورمة الأولى للبرنامج الكود التالى

Dim driveType As Long

driveType = GetDriveType(Mid(App.Path, 1, 3))

If driveType <> 5 Then

البرنامج سيقف إذا لم يكن يعمل من على قرص مدمج

End

End If

وطبعا سيأتى سؤال تلقائى كيف أعرف سيريال نمبير الإسطوانة بعد نسخ البرنامج عليها وأضعه فى البرنامج والبرنامج أصلا موجود على الإسطوانة :

أنت ممكن تجعل البرنامج ينسخ أول سيريال نمبير قرأه وهو بذلك لا يعمل إلا على إسطوانة واحده .

والسورس كود سوف أرفقه قريبا بعد الإنتهاء منه

وأرجو منكم الردود .....

مع تحيات / الأخ المسلم (أسامه عبد الصادق)

ekwan-logo1.gif

[/وسط]

#2

السلام عليكم ورحمة الله وبركاته

من اخلاق المسلم ان يبلغ الرجل اخطاءه باللين لكن اعذرني اخي لم اجد طريقة مناسبة.

الطريقة التي تتكلم عنها اصبحت من الطرق القديمة "جدا" المستخدمة في الحماية وما شابه وهي معروفة من زمن طويل ولم تعد ذات رواج... لربما يتم اخذ الرقم التسلسلي ويتم ادخاله لخوارزمية اكبر من مسالة التحقق منه فقط لكن بالتاكيد لن يتم الاعتماد عليه بالكامل, اتحدث اليك من علم بالشئ.

لذا ارجو منك ان تراجع ما تكتب قبل نشره كي لا تأتيك مذمة من غير ذي علم.

وتقبل تحياتي

السلام عليكم ورحمة الله وبركاته

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

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

وجزاك الله خيرا على هذه الإضافة .

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

فممكن أن يفيد هذا الموضوع المبتدئين مثلى فقط

وشكرا

[/وسط]

#4

السلام عليكم ورحمة الله وبركاته

أظن أن الكل يفكر في الحماية لكن المشكل ليس في الحماية بقدر ماهو التفكير في طريقة الحماية

لاني لا أظن أن حماية برنامجي ان استحق الحماية ستكون عن طريق أكود أو طرق لكن بالنسبة لوجهة نظري لابد من وضع أسس حقوق الملكية الفكرية في هذا الجانب

ومن هنا يمكننا أن نتكلم عن أهمية البرامج في وسط معين وفق شروط معينة

المهم طريقة الحماية بالسيدي طريقة قديمة جدا لكن هذا لا يعني أنها ضعيفة

ومن جهة أخرى أن لا نفكر في الحماية الا من باب وضع شئ من الثقة بين المتعاملين معنا

من جهتي قد أسعد إذا وجدت كراك لبرنامج من برامجي فهذا يبعث في نفسي شئ أن برنامجي مهم في وسط معين

لكني صدقني أخي آخر شئ يجب التفكير فيه هو حماية البرنامج

فقط فكر في عمل شئ سهل ممتنع

#5

كلام الأخ Dreamnet ممتاز وفوق الوصف

جزاك الله خيرا

[/وسط]

#6

اخى كراك البرنامج الخاص بك سهل جدا

كما انك نسيت ال Virtual cd

وطريقة السيريال نمببر اللتى ستعرف فى اول شغل للبرنامج يمكنك نسخ اسطزانة ومع بداية عمل الويندوس تبدا العمل بها

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…