السلام عليكم و رحمة الله و بركاته ،،
تقنية التشفير في هذه الأيام و بالخصوص لتطبيقات الإنترنت بدأت تظهر على السطح و بالخصوص بعد ظهور برامج لفك التشفير.
المبرمج في الغالب يريد أن يحافظ على حقوقه و لديه طريقان. إما أن يدفع مبلغاً محترماً عن كل ساعة عمل لشركة مثل الشركة التي تقوم بمهمة متابعة مشكلة النسخة المقرصة للبرنامج الشهير للمنتديات VB. أو أن يقوم المبرمج بتشفير برنامجه عن طريق برامج التشفير الموجودة و المشهور منها Zend و IonCube.
إن كان البرنامج يحقق أرباحاً مناسبة لتبني الخيار الأول فلذلك شيء جميل. أما إن لم يكن البرنامح يحقق تلك العوائد المذكورة فالخيار الثاني هو الحل و هو الذي سنتحدث عنه قليلاً هنا.
لماذا ظهرت مسألة التشفير وفك التشفير و كل هذه الضجة في عالم تطبيقات PHP؟ ولم تظهر في البرامج المبرمجة بال ASP.Net على سبيل المثال؟
في الغالب لأن هنالك إمكانية تسليم برنامج متكامل بال ASP.Net و البرنامج محول إلى كود تنفيذي لا يمكن كشف مصدره بتاتاً و لا إمكانية على المدى القريب لفعل ذلك لأن محرك ASP.Net في حد ذاته موجود كبرنامج تنفيذي هو الآخر وبالتالي لا يمكن زرع سطر أوامر ضمن محرك ASP.Net لطباعة الأسطر الموجود في ملف .aspx.
قد تكون هنالك إمكانية لفعل ذلك و لكن حتى الآن لم أرى الكثير من المقالات تتحدث عن هذا الموضوع و لعلمي أن إعادة تكوين الكود المصدري لملف تنفيذي .exe في حد ذاته صعب إن لم نقل مستحيل، و يمكن إعادة إنتاج كود مشابه إلى حد ما لطريقة عمل الملف التنفيذي وفي جميع الحالات لن يكون 100% قريب من الكود الأصلي.
ننتقل إلى الجانب الآخر والخاص بال PHP و آلية التشفير وفك التشفير:
آلية التشفير:
في الغالب عملية التشفير تقوم على أساس تحويل كود PHP إلى كود آخر له خوارزمية لإعادة تحويله إلى كود PHP لتمكين محرك PHP من تنفيذ الكود البرمجي. في الغالب سيكون هنالك وسيط بين الكود المشفر ومحرك PHP. كـZend Decoder و IonCube Decoder.
ألية فك التشفير:
لم أقم بعملية فك التشفير أو محاولة لعملها و لكن في الغالب إن تمكنت من فهم الفكرة بالطريقة الصحيحة، فالعملية ستكون بإدخال كود لطباعة نص PHP في ملف خارجي و سيكون هذا الكود مدمج في محرك PHP. و محرك PHP موجود كوده المصدري وبشكل مجاني ويمكن لأي مبرمج تعديل الكود الخاص بمحرك PHP و فعل ما يريد فيه.
بشكل بسيط في النهاية ما سيصل إلى محرك الPHP هو كود غير مشفر عن طريق وسيط فك التشفير كـZend Decoder و IonCube Decoder و سيكون بالإمكان إكتشاف الكود.
التشفير وسيلة أم غاية؟
في الغالب هنالك بعض من يقوم بتشفير برنامجه بسبب تسرب النسخ الرسمية و في الغالب يتم توزيعها بشكل مجاني على عدد كبير من الأشخاص مما يؤدي إلى فقد المبرمج إلى جزء كبير من الأرباح عن طريق إنتشار هذه النسخ المقرصنة. و لذلك يقوم بتشفير برنامجه على أمل أن يساهم ذلك في تقليل النسخ المقرصنة من برنامجه. و في هذه الحالة يعتبر التشفير وسيلة.
من جهة آخرى يقوم البعض الآخر بتشفير البرنامج إما لإخفاء بعض العيوب أو الأكواد الخطيرة أو بسبب أن البرنامج في أساسه كان برنامجاً مفتوح المصدر وكل ما قام بعمله هذا الشخص هو تغيير بسيط في الكود أو حتى تغيير كبير وأضاف عبارة الحقوق الخاصة به و قام ببيع البرنامج على أنه ملكه. و في هذه الحالة إن كان الكود غير مشفر سيتم التعرف على مواطن الضعف او مواطن التشابه بين هذا البرنامج و البرامج الآخرى و في هذه الحالة سيكون التشفير غاية.
هذا ما لدي لأطرحه حول هذا الموضوع و قد يستدعي الموضوع مواضيعاً أخرى سأقوم بكتابتها إن تمكنت من ذلك.
اترك تعليقاً