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

طريقتي في الحماية

مثبّترائج
بدأه رضا عقيل في 16 أبريل 2003 · 128 رد · 54,677 مشاهدة · في قسم الدروس والمشاريع
مشاركة: واتساب X فيسبوك تيليجرام
#26

أخي أبو عقيل(f)(f)(f)(f)

اصبت كبد الطريقة

لكن

حاول ذلك على المثال الأخير ;)

أخي SABER_EDP

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

مع تحياتي (f)(f)

#27

إخواني الكرام

أرفقت الملف مفكوك دون أي حماية

فمرة الحماية تنقسم إلى طريقتين

===================

الأولى :

إذا كنت سأعطي البرنامج على اسطوانة إلى العميل وهو يقوم بعمل ست أب بنفسه وبالتالي اتبعت الآتي

1- تصميم نموذج به مربع يأخذ رقم سريال الهارد ديسك وذلك عن طريق استدعاء الوحدة النمطية عند الفتح

2- عمل مربع نص يضع فيه العميل رقم النسخه الخاصه به

2- عمل زر أمر للخروج النهائي في حالة عدم التسجيل

3- عمل زر تسجيل يقوم بتسجيل النسخه

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

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

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

+++++++++++

والسؤال هنا ماذا لو تخطى العابث النموذج الأول ( نموذج السريال ) ليضع النموذج الرئيسي للبرنامج في بدء التشغل ؟؟؟

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

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

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

======================

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

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

والمثال المرفق يعتمد على الطريقة الأخيرة

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

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

فما رأيكم إخواني

أنتظر الإجابة

الملف مرفق برنامج رقم النسخه للتسجيل ولإنشاء الملفات

reda.rar

#28

طريقة جداً رائعة و قوية و الله يوفقك

تحياتي / SPACE

#29

السلام عليكم

بما ان الاخ ابوعقيل 2001 استطاع ان يصل الى الوحدات النمطية وهي محمية

الاخ ابو عقيل 2001

============

هل استطعت الوصول لها من قبيل الصدفة او بطريقة معينة ؟

اذا كان بطريقة غير الصدفة والذكاء فلا تبخل بها علينا .

تحياتي

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#30

الحقيقة أن سؤالك أخي فيصل جعلني أفكر

هل هناك فعلاً طريقة لفك شفرة الوحدات النمطية ولكني سألت السؤال ذاته لأخي أبو هاجر من قبل وأجاب النفي .

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

وبالتالي أضفت الشرح بعدها مع المثال مفكوك

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

وأضم صوتي بسؤالك إلى أخي ابو عقيل (( هل بطريقة ما أم بالصدفه والدهاء )):o

مع تحياتي

رضا عقيل(f)(f)

#31

اقتباس من رد أخي ابو عقيل

صدقني بالله لم أتمكن من فك الحماية ، وقد عملت هذا المثال شبيها بالمثال

الذي وضعه أخي / رضا العقيل

اقتباس من رد أخي أشرف خليل

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

#32

عزيزي / رضا عقيل :o

اقتباس

وأضم صوتي بسؤالك إلى أخي ابو عقيل (( هل بطريقة ما أم بالصدفه والدهاء ))

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

التجربة ,,,, أي أن الرقم (( 123 )) هو الرقم المفضل عندي ،، ليس إلا .

صدقني هذا ما حصل ، ليس عندي أي طريقة لكشف الرقم السري للوحدة

النمطية ، ولو كان لدي لكشفت الرقم السري للمثال الذي طرحت بعد ذلك .

تحياتي

أبو عقيل (f)(f)(f)

المسلم من سلم الناس من لسانه ويده

#33

السلام عليكم

جهد مشكور بارك الله فيكم

" وما توفيقى إلا بالله عليه توكلت وإليه أنيب "
-------------------------------------------------
قل : " لا حول ولا قوة إلا بالله "
-------------------------------------------------

#34

اخي

هل الملف DLL

يقوم البرنامج بأنشاءه

اذا كان كذلك هل نستيع تغيير مكانه من السي الى ملف الوندوز داخل السي

#35

أخي ابو وليد

بعد التحية

أعتذر عن التأخير

هذا الكود

Open "c:2026.dll" For Binary Access Write As #1
Close #1

هو الخاص بإنشاء الملف

وستجد اسم الملف بامتداد dll وتستطيع التغير في الاسم والامتداد وكذلك الموقع كيفما تشاء

مثل

Open "c:windows2026.txt" For Binary Access Write As #1
Close #1

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

مع تحياتي وأعتذر ثايناً عن التأخير

أخوك رضا عقيل(f)(f)(f)

#36

بارك الله فيك

ولكن هل استطيع ان اضعه في مسار اخر مثل

"c:windowswindows2026.txt"

والله الموفق

#37

ننتظر الشرح بلهفة كبيرة

ارجو ان لايطول زمن الشرح

#38

أخي ابو وليد

بالطبع تستطيع تغيير اسم الملف كما تشاء وكذلك الفهرس الموضوع فيه كما تشاء ....

أناكتبت شرط ( سلاش ) في الكود السابق لا أعرف اين ذهبت

المهم .....

c:windows2026.txt

تستطيع تغيير الفهرس الرئيسي واسم الملف وامتداده

مع تحياتي

اخي أحمد

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

مع تحياتي رضا عقيل

(f)(f)(f)

#39

بارك الله فيك

ورزقك من علمه ورزقه

#40

ممتاز يا اخوان بس عجلوا علينا بالطريقه

#41

بسم الله الرحمن الرحيم

أخي : أحمد- أخي أبو يوسف ...

إليكم شرح الطريقة بالتفصيل

أولاً : تنقسم الحماية إلى عدة اقسام :

القسم الأول : رقم الهادرديسك

والهدف منه

لا يعمل البرنامج إذا تم نقله من جهاز إلى آخر ( وذلك يعني أن العميل الذي تم له التحميل هو فقط الذي يستفيد من البرنامج )

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

وتنفيذها كالتالي

1- إنشاء جدول باسم " سريال " يحتوي على حقل اسمه " سريال "

2- إنشاء نموذج يوضع مصدره جدول " سريال " وبه حقل اسمه سريال

- في خصائص النموذج - منبثق = نعم - شكلي أو مشروط = نعم

- نمط الحدود = بلا - أزرار التنقل = بلا - أشرطة التمرير = بلا

- يتم وضع هذا النموذج في بدء التشغيل

- إنشاء حقل غير منضم اسمه " t1 " بجوار حقل " سريال "

3- إنشاء نموذج باسم " نموذج 1 " وهو النموذج الرئيسي للبرنامج .

4- إنشاء وحدة نمطية تحتوي على الكود التالي

Sub ShowDriveInfo()

Set fs = CreateObject("Scripting.FileSystemObject")
Set h = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName("c:")))


Forms!serial!t1.Value = h.SerialNumber


If (Forms!serial!t1.Value - 23177) * 2 = Forms!serial!سريال.Value Then
DoCmd.Close
DoCmd.OpenForm "نموذج1"

Else
MsgBox "عفوا ليس من حقك استخدام هذا البرنامج"

End If

End Sub

5- في حدث عند بدء التشغيل للنموذج " سريال " نضع سطر الأمر التالي

DoCmd.Maximize   لتكبير النموذج ليملأ الشاشة
Call ShowDriveInfo  يستدعي عمل الوحدة النمطية

6- بناء على ما سبق :::: عند فتح البرنامج سيفتح نموذج " سريال " وتبدأ عمل الوحدة النمطية عند الفتح فيتم وضع رقم الهارد في الحقل t1 ثم يتم مقارنة حقل "سريال " بعد عمل المعادلة عليه بحقل t1 وإذا لم يوجد تطابق تظهر الرسالة المشار إليها سابقاً ..... مع ملاحظة أنه ذلك يحدث إذا كان البرنامج يعمل لأول مره وبالتالي حقل " سريال سيكون فارغاً أساساً وكذلك إذا تم إدخال رقم خاطيء في حقل السريال ..

أما إذا تطابق الرقمان بعد المعادلة فسيتم إغلاق النموذج سريال ثم فتح النموذج الرئيسي ..

********

وهنا يثور تساؤل

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

القسم الثاني

ب- حماية النماذج الرئيسية

وتتم بعمل ملف من نوع معين ويتم وضع هذا الملف في مكان معين على الهارد وعن فتح النموذج الرئيسي يختبر وجود هذا الملف في مكانه وعند عدم تواجده لا يفتح النموذج الرئيس وهذا الملف يضعه المبرمج أيضاً عند تحميل البرنامج على جهاز العميل .

((((( مع العلم أن هذه الطريقة تمنع منعاً باتاً الدخول في تصميم النموذج في حالة وضع البرنامج بصيغة Mde وبالتالي لا يوجد طريقة للتعديل في النموذج ابدأً وهذا ينطبق على الموضوع الذي أثير من قبل على التعديل في النماذج في القواعد المغلقة mde فلا يمكن التعديل مع الحماية بهذه الطريقة )))))

ويتم عمل هذا القسم كالتالي

1- في حدث عند الفتح للنموذج الرئيسي " نموذج 1" ضع الكود التالي

Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
On Error GoTo ERROR_SUB
Open "c:" & "2026.dll" For Input As #1
Close #1


ERROR_SUB:
If Err.Number = 53 Then
MsgBox "عفوا ليس من حقك استخدام هذا البرنامج"
Close #1
SendKeys "{ESC}"
DoCmd.Quit
Exit Sub
End If
End Sub

وبالتالي عند عدم تواجد الملف في مكانه لن يفتح النموذج الرئيسي أبدا .........

****

القسم الثالث

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

القسم الرابع

د- تحويل القاعدة إلى mde يمنع التعديل في النماذج الرئيسية ويمنع إضافة أي نماذج إلى القاعدة .

***********

يبقى لدينا أدوات صاحب البرنامج التي يستخدمها عند وضع البرنامج على جهاز العملي

جميعاً نعرف أن الفضول سيدفع العميل لجلوس بجانب المبرمج حتى يعرف أسرار البرنامج

وهنا يتم صنع برنامج صغير وظيفته

1- استنتاج رقم الهارد

2- عمل المعادلة عليه ثم إظهار الرقم المستنتج بعد المعادله في حقل آخر ليتم نسخه ووضعه داخل نموذج سيرال في حقل سريال حتى يعمل البرنامج

3- إنشاء ملف الاختبار في مساره المحدد .

وتنفيذ هذه الطريقة كالتالي

1- إنشاء قاعدة بيانات جديدة تحتوى على نموذج واحد ووحدة نمطية واحدة

2- في المثال المرفق اسم النموذج " seril_2" ونضع فيه حقيلن غير منضمين " t1 " و "نص9"

3- في الوحدة النمطية المسماه " seril_2 " نضع الكود التالي

Sub ShowDriveInfo()

Set fs = CreateObject("Scripting.FileSystemObject")
Set h = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName("c:")))

      Forms!serial_2!t1.Value = h.SerialNumber

End Sub

4- ثم نقوم بإنشاء زر أمر اسمه " رقم النسخه " ونضع فيه الكود التالي

Call ShowDriveInfo
Me.نص9 = ([t1] - 23177) * 2

5- عند الضغط على زر الأمر يقوم باستدعاء الوحدة النمطية ويقوم بوضع قيمة رقم الهارد في الحقل " t1 " في النموذج seril_2 ثم يجري على الرقم المعادلة المحددة من قبل ويضع الناتج في حقل " نص9" وبهذا نكون حصلنا على الرقم والمعادلة بدون حسابات أما العميل هذا الرقم في الحقل " نص9" يتم نسخه ووضعه في قاعدة البيانات الأصلية في حقل سريال عند تحميل البرنامج وسيعمل البرنامج .

6- إنشاء زر أمر آخر ووضع الكود التالي في حدث عند النقر

Open "c:2026.dll" For Binary Access Write As #1
Close #1

هذا الكود يقوم بإنشاء الملف " 2026.dll" المحدد في المسار المحدد والذي سيعتمد عليه النموذج الرئيسي في القاعدة الأساسية عند الفتح

*********************

وبالتالي نكون حققنا الأهداف التالية

1- منع استخدام البرنامج لغير المرخص لهم بذلك

2- منع التعديل في النماذج الرئيسية حتى المحترفين لا يستطيعون ذلك ولا أنا لا أستطيع ذلك إذا لم تتحق الشروط .

3- إذا تم نسخ البرنامج على أي جهاز آخر لن يعمل البرنامج .

4- أجرينا كل الحسابات وإنشاء الملفات سرياً بدون أن يدري العميل أو أي شخص ماذا يجري بالضبط

***************************

هذا كل شيء

***********************************************

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

مع تحياتي

أخوكم رضا عقيل(f)

reda.rar

#42

السلام عليكم

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

وتحية على شرحك ...

" وما توفيقى إلا بالله عليه توكلت وإليه أنيب "
-------------------------------------------------
قل : " لا حول ولا قوة إلا بالله "
-------------------------------------------------

#43

الف شكر أخي الفاروق

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

#44

ليش مااقدر اتصفح الموضوع :'( :'( :'(

#45

شرح وافي ورائع يا رضا .

بارك الله فيك وشد حيلك ...(f)

#46

السلام عليكم

ماشاء الله

ربنا ينور عليك ......

swcc-1052254947.gif

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#47

اخي رضا عقيل

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

وبارك الله فيك ونفع بعلمك

اتق الله حيث ماكنت

#48

هذا هو الرابط لاحد هذه البرامج وهناك غيرها الكثير

http://www.elcomsoft.com/AVPR/avprp.zip

#49

أخي هذه البرامج التي تتحدث عنها تتعرف على كلمة سر الدخول للملف نفسه غذا عينتها من خلال البرنامج نفسه فقط وليس على الوحدات النمطية ،،،،،:rolleyes::rolleyes:

#50

السلام عليكم

الاخ رضا عقيل

يمكنك مراجعة الرابط التالي ففيه برنامج كاسر كلمة مرور الوحدات النمطية

http://www.arabteam2000.com/vb/showthread....?threadid=28047

swcc-1052254947.gif

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 

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