تاريخ أساليب كسر الحماية :بسم الله الرحمن الرحيم
في البداية ننوة إالى ضرورة التمييز بين التعبيرين Hack (كسر حماية) و Crack (قرصنة البرامج) عند معالجة موضوع حماية البرامج والبحث في الأنترنت والكتب الأجنبية. ففي الحقيقة تصف الكلمة Hack محاولة كسر حماية برنامج بهدف الوصول لحاسب شخصي أو لملقم وذالك بطرائق غير قانونية.
ظهر مفهوم حماية البرامج في الثمانينات من القرن العشرين وبرز بعد ذالك مباشرة مفهوم كسر حماية البرامج. في ذالك الزمن كان الـ DOS يحكم جميع برمجيات الحواسب الشخصية ولذالك كانت البرامج تستخدم توابع المقاطعة (Interrupt) عند رغبتها في التواصل مع الأجزاء الأخرى من الحاسب. ولذالك تمحورت محاولات كسر حماية البرامج حول الاستعانة بهذة التوابع.
اما الأن وبعد ظهور عدة إصدارات من نظام التشغيل Windows فقد تطورت أدوات البرمجة كثيرا لاكن المفارقة هنا أن هذة الترقية لم تساهم في زيادة حماية البرامج بل على العكس من ذالك فقد انخفض الجهد الازم لكسر حماية معظم البرمجيات التي تعمل في بيئة Windows مقارنة بما كانت علية في وضع DOS ويعود ذالك الى إستخدام البرامج الحالية المكثف لملفات DLL و API التي تقوم بمهام متعددة وفي غاية الأهمية ولكن إستخدام هذة الملفات يزيد من احتمال كسر الحماية لأننا نعرف كيفية استعمال هذة الملفات وبذالك نستطيع مراقبة عمل برنامج من خلال متابعة الملفات التي يتم استدعاؤها من قبل هذا البرنامج.
هناك عدة أساليب لحماية البرامج وتتدرج هذة الأساليب من مجرد مطالبة المستخدم بإدخال رقم سري إلى ضرورة وجود قرص ليزري او مفتاح فعلى (Dongle) متصل بإحدى بوابات الحاسب وقد تطورت هذة الأساليب نتيجة للنجاح المتواصل في كسر حماية معظم البرامج
النقاط المحتملة لاختراق البرامج :
البيانات: قد تحتوي مساحة البيانات بعض المعلومات السرية مثل كلمات السر أو مفاتيح البرامج أو معلومات خاصة أو مفاتيح تشفير البرنامج. وبالإمكان هنا إختراق هذة الخصوصية أو السرية من خلال مراقية هذة المساحة.
تعليمات البرنامج: تشكل تعليمات البرنامج المركز العصبي للبرنامج وتتكفل بإنجاز المهام المطلوبة عند تنفيذ البرنامج من الشائع هنا اختراق حماية البرنامج من خلال مراقبة ودراسة بعض تعليمات البرنامج. تسمح هذة الدراسة بتعديل بعض التعليمات بهدف تجاوز الجزء الخاص بحماية هذا البرنامج.
المدخلات/المخرجات: من السهولة بمكان مراقبة دخل وخرج البرنامج. وتزيد هذة المراقبة من إحتمالية كسر الحماية.
كامل البرنامج: قد يعمد بعض القراصنة على نسخ كامل البرنامج بهدف البيع غير القانوني لهذة النسخ.
في المحصلة يتعرض البرنامج للهجمات التالية :
· مراقبة تصرفاتة وحركة البيانات.
· الهندسة العكسية ودراسة تعليماتة بلغة التجميع.
· قرصنة كامل البرنامج.
· تعديل البرنامج.
لذالك يتوجب اللجوء إلى إجرأت خاصة بهدف حماية البرامج في وجة هذة الهجمات.
كيفية كسر الحماية :
يعتقد معظم المبرمجين أنة من غير الممكن معرفة تفاصيل التعليمات الداخلية للبرامج إلا في حال توفر مصدر البرنامج (أي النص البرمجي). هذا الإعتقاد غير صحيح لوجود ثلاث طرق للوصول إلى مصدر البرنامج انطلاقا من النسخة التنفيذية Exe :
(المنقحات Debuggers) : تسمح المنقحات بتنفيذ وعرض تعليمات البرنامج خطوة بخطوة مع إمكانية إيقاف التنفيذ عند النقاط او الأجزاء الحساسة. وهكذا يصبح بالإمكان مراقبة ودراسة مختلف أجزاء البرنامج وبالتالي تحديد المقاطع المسؤولة عن توفر الحماية في البرنامج. نشير هنا إلى إزدياد صعوبة هذة الدراسة في حال لغات برمجية عالية المستوى لكن مثل هذة اللغات عادة لاتتمكن من توفير حماية جيدة للبرامج.
(برامج فك التجميع Disassemblers) : بإمكان هذة البرامج إيجاد النص البرمجي بلغة التجميع الموافق للنسخة التنفيذية لأي برنامج. كما تستطيع بعض برامج فك التجميع الجيدة إضافة تعليقات توضيحية للمساعدة في في شرح بعض مقاطع النص التجميعي فمثلا هناك بعض البرامج التي تطالب المستخدم بإدخال رقم تسلسلي بالإمكان هنا إيجاد هذة العبارة بسهولة في النص التجميعي وبالتالي نكون قد حددنا الجزء المسؤول عن الحماية في البرنامج.
(برامج إعادة الترجمة Decompilers) : تستطيع هذة البرامج إيجاد النص البرمج الأصلي انطلاقا من النسخة التنفيذية وذالك من اجل لغة برمجية محددة وهكذا نحصل على نص برمجي سهل القراءة لانة مكتوب بلغة برمجية عالية المستوى لكن يجب ان تكون لدينا خبر كافية في هذة اللغة. ننوة إلى وجود برامج إعادة الترجمة من أجل برمجيات مكتوبة بواسطة مختلف اللغات مثل Delphi و Visual Basic و Java.........
يتبع...........