حماية البرامج من القرصنة

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

طرق حماية البرامج
هنالك عدة أساليب لحماية البرامج من القرصنة :
- حماية من النسخ : يكون البرنامج موجود على CD محمي من النسخ (مثل برنامج قرآن- أو برنامج تعليم لغة إنكليزية …). فإذا حاولنا نسخه بطريقة عادية فلن نستطيع ذلك لأنه عادة يحوي أسماء لملفات غير صحيحة أو قطاعات غير صالحة مما يمنع نسخه ببساطة. ولكن مبرمج محترف يستطيع اختراقه هذه الحماية بساطة لأن ما يمكن قراءته يمكن نسخه!
- الطريقة الثانية هي منع تنفيذ البرنامج ما لم يكن على حاسب له مواصفات معينة : فنحن نسمح بنسخ البرنامج ولكن لا نسمح بتنفيذه ما لم يحقق الحاسب شروط معينة مثل رقم القرص الصلب أو رقم المعالج أو وجود دونكل(Dongle) .
فمثلاً لدي برنامج محمي على رقم القرص الصلب : فهو لا يعمل إلا إذا كان رقم القرص الصلب يساوي 1234-5678. ( نحاول تنفيذ البرنامج فتظهر رسالة أنه لا يعمل إلا إذا كان رقم القرص الصلب يساوي 1234-5678)
ما هو رقم القرص الصلب
في كل عملية تهيئة (Format) لأحد أجزاء القرص الصلب يتم توليد رقم عشوائي لكل جزء من أجزاء القرص الصلب وهو عادة لا يتغير ما لم نقوم بتهيئة القرص الصلب مرة ثانية.
يمكننا قراءة رقم القرص الصلب باستخدام تعليمة VOL أو يظهر في بداية DIR من خلال موجه أوامر DOS .
ضعف هذه الطريقة
المبرمجون الذين يحمون برامجهم بهذه الطريقة لا يعلمون أن تعديل رقم القرص الصلب في غاية السهولة – فصحيح أن Windows لا يتيح أي أمر لتعديله ولكن هنالك العديد من البرامج الأخرى التي تسمح بذلك.
فلبرنامج التالي يغير رقم القرص الصلب إلى 1234-5678 ببساطة - نجربه ونعيد تشغيل البرنامج المحمي . فنلاحظ أننا استطعنا تشغيله.

أفضل طريقة لحماية البرامج
الطريقة الأمثل لحماية البرامج فهي استخدام Dongle
إن أصل كلمة دونكل يعود لمخترعه Don Gale – والدونكل عبارة عن قطعة إلكترونية لا يمكن تقليدها تتصل بأحد مخارج الحاسب مثل LPT COM USB – ولدي بعض الأمثلة : ...

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

في الجزء التالي سننفذ مثال بسيط حول كيفية حماية برنامج تحرير نصوص (Program2) بواسطة دونكل USB. وسنولد نسخة جديدة منه ProProgram2 مربوطة بالدونكل USB.

في البداية نتعرف على البرنامج الأصلي الغير محمي Program2 ، ثم ننفذ برنامج الحماية الآلية ، حيث يوجد عدة طرق لحماية برنامج ما بدونكل ، أسهلها الحماية الآلية.
ننتقل إلى قسم التصميم Design ونختار Automatic Protection وتعني حماية آلية. ثم نختار اسم الملف الذي نريد حماته ثم اسم الملف الناتج (المحمي) ثم لدينا إمكانية في جعل البرنامج يعمل عدة مرات ويتوقف (النسخ التجريبية Demonstration ) أو نجعله يعمل بشكل دائم. وفي النهاية نبرمج الدونكل.

نجرب البرنامج المحمي في حال وجود الدونكل فنلاحظ أنه يعمل بنجاح.
نعيد التجربة بعد نزع الدونكل فنلاحظ أنه لا يظهر رسالة تعني أن مفتاح الحماية (دونكل) غير موجود.

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