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

كيف تحمي مشروعك بطريقة سهلة ومبسطة

مغلق
بدأه بو يوسف الراشد في 12 مارس 2005 · 7 رد · 2,930 مشاهدة · في قسم أرشيف الحماية والامان
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

قمت بعمل حماية لمشروعي بطريقة سهلة ومبسطة

ولا أعتقد أن هذه الطريقة تخفى على المحترفين بهذا المنتدى الرائع

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

كما أتمنى أن تعطونا ملاحظاتكم وآرائكم حول نوع هذه الحماية..

بسم الله نبدأ...

الحماية التي قمت بصنعها متعلقة بالعبارتين التاليتين:

Savesetting

ووظيفتها تخزين قيمة العنصر الموجود في الفورم داخل الرجيستري الخاص بالويندوز

مثال:

إذا قمت بوضع مربع نص غير مرتبط بجدول داخل الفورم

ثم قمت بكتابة مثلا "12345" ثم أغلقت الفورم

فإن هي القيمة سوف تخزن داخل الرجيستري الخاص بالويندوز

ولكي أستدعيها مرة أخرى داخل الفورم

استخدم العبارة

Getsetting

ووظيفتها استدعاء قيمة العنصر الموجود داخل الرجيستري الخاص بالويندوز لعرضها في الفورم

يعني كلما فتحت الفورم سأجد الرقم "12345" موجود بمربع النص الغير منضم

وعندما أقوم بتغييره من خلال الفورم فإنه يتغير

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

وبعد هذا الشرح أريد أن استخدم هذين العبارتين لحماية مشروعي ...... كيف ؟ B)

أصنع فورم ولنسمه مثل "رقم المنتج"

نضع فيه مربع نص نسمه أيضا "رقم المنتج"

ومقابله زر أمر "موافق"

عند حدث "عند الإغلاق" في الفورم نضع الكود التالي

SaveSetting "db1", "رقم المنتج", "رقم_المنتج", رقم_المنتج

وبهذا قمنا بحفظ القيمة التي إدرجت في مربع النص في الرجيستري الخاص بالويندوز

وعند حدث "عند الفتح" في الفورم نضع الكود التالي

GetSetting ("db1", "رقم المنتج", "رقم_المنتج", رقم_المنتج")

وبهذ ا نقوم بوضع القيمة التي في الرجيستري الخاص بالويندوز داخل مربع النص"رقم المنتج"

نقوم بتحديد رقم منتج وليكن

12345

عند حدث "عند النقر" الخاص بزر الأمر "موافق" نضع الكود التالي

if رقم_المنتج <> 12345 then
msgbox "رقم المنتج خاطئ يرجى المحاولة مرة أخرى"

وعند حدث "عند الفتح" في الفورم نضع الكود التالي

if رقم_المنتج = 12345 then
DoCmd.Close
DoCmd.OpenForm "اسم الفورم المراد فتحه بعد فورم رقم المنتج"

اغلق المشروع وافتحه مرة أخرى

ستجد أن فورم رقم المنتج لن يفتح

سيفتح الفورم الرئيسي مباشرة

وبذلك تستطيع أن تحمي مشروعك من أن يتسرب هنا وهناك

ولو قمت بنقل الفورم ووضعه في جهاز آخر فلن يعمل المشروع إلا إذا عرفت رقم المنتج

أرفق لكم المف

وأرجو أن أرى أرائكم

db2.zip

تم تعديل هذه المشاركة بواسطة بو يوسف الراشد في 12 مارس 2005 في 13:16

#2

يعطيك العافية أخي الفاضل / بو يوسف الراشيد

مع خالص التحيات ،،،

عبدالمانع

إنما الأمم الأخلاق ما بقيت ××× فإن هم ذهبت أخلاقهم ذهبوا ...
#3

نسيت أن أقول لكم كيف يتم الوصول إلى مكان التخزين داخل الرجيستري الخاص بالويندوز

افتح ملف التسجيل لمعاينة التغييرات ؛ انقر ابدأ ثم تشغيل واكتب RegEdit وانتقل إلى HKEY_CURRENT_USER/Software/VB and VBA Program Settings وستجد اسم التطبيق انقر عليه وستجد الأقسام التي وضعتها داخل اسم التطبيق .

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

لكن المشكلة هنا إذا استطاع المحترف الوصول إلى ملف الرجيستري فسوف يرى رقم المنتج الذي تم حفظه

اتمنى من المحترفين ايجاد طريقة تخفي لنا رقم المنتج المخزن

وبهذا تستطيع أن نقول بان المشروع محمي 100%

تم تعديل هذه المشاركة بواسطة بو يوسف الراشد في 12 مارس 2005 في 13:03

#4

للرفع والفائدة...

#5

استاذنا بويوسف الراشد

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

نشكرك على هذا المجهود الرائع وجعله الله في ميزان حسناتك اللهم امين

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

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

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

1. لم يتم التحميل

2. لم يتم التعرف اساسا على البرنامج

3. وقف برنامج The Cleaner لنا بالمرصاد عند محاولة التحميل معتبرا ان اختراق الريجستري هو فيروس او تروجان

4. قمت بإعادة ملف الريجستري المنسوخ وعادت الامور الى طبيعتها

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

#6

الاخت /زهرة..

جزاك الله خيراً على هذا الرد وهذه الملاحظات...

وبالنسبة للعبث في ملفات الرجيستري يسبب خلل...

فكلامك صحيح للقيم المرتبطة بالويندوز والمرتبطة بالبرامج

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

لأنها مجرد قيمة تخزن في مكان واحد داخل الرجيستري

وإزالتها لن تضر (حيث أني قمت بإزالة القيمة أكثر من عشر مرات) وفعلت ذلك في جهازين بدون أي مشاكل

لكن كما ذكرت سابقاً أن المشكلة هي أن القيمة ظاهرة داخل الرجستري

أتمنى أن تعطينا طريقة تجعل قيمة الرجستري " باينري " اي ثنائي كما ذكرتي من خلال الاكسس

وبذلك تكون من أقوى الحمايات التي يحتاجها المبرمج بسبب أن ملف الرجستري غير ظاهر

تم تعديل هذه المشاركة بواسطة بو يوسف الراشد في 17 مارس 2005 في 01:30

#7

للرفع يا اخت زهرة

تم تعديل هذه المشاركة بواسطة بو يوسف الراشد في 17 مارس 2005 في 22:06

#8

الف شكر لك اخي الكريم

كم كنت اتمنى لو اسم النموذج مختلف عن اسم الحقل

وايضا لاحظت اسماء غريبة في النماذج من اين ولماذا

Private Sub Form_Close()

SaveSetting "نماذج شعبة الدوام", "نموذج رقم المنتج", "رقم_المنتج", رقم_المنتج

End Sub

اين نماذج شعبة الدوام

ارجو المعذرة ما زلت احبو على موائد الكبار

وخصوصا بموضوع التعامل مع الكود

ارجو المعذرة اخي الكريم

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

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

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

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

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

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

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