السلام عليكم
أنا عضو جديد في هذه المنصة، مشرف سابق في منتديات الفريق العربي للبرمجة و rédacteur أيضاً في Club des développeurs et IT Pro.
أعجبتني فكرة الموقع و أحببت أن أناقش معكم كيفية حماية ملف الـ jar إذا كان المشروع غير مفتوح المصدر.
تحياتي.
توجد بعض الطرق لحماية السورس الكود (إلى حدٍ ما) من الهندسة العكسية (عن طريق الـ decompilation):
1. الـ obfuscation: وهي طريقة تقوم بتغيير أسماء الكلاسات والدوال والمتغيرات، لكي يصعب على "الهاكر" فهم السورس كود. ومن أشهر الـ obfuscator هو ProGuard.
2. التحويل من byte-code إلى native-code: أي تقوم مثلاً بتحويل برنامج الجافا إلى exe، وبهذه الطريقة لن يمكن استرجاع كود الجافا الأصلي. لكن يعيب هذه الطريقة هو أنك لن تتمكن من تشغيل البرنامج على الأنظمة الأخرى، بعكس ما يميز برامج الجافا. ومن أشهر الأدوات لعمل ذلك هو Excelsior JET.
3. تشفير ملف الكلاس، وأثناء الـ runtime، يقوم برنامج الجافا بفك التشفير وإضافته إلى الـ ClassLoader. على أية حال، يستطيع "الهاكر" عمل هندسة عكسية للكود الذي يقوم بفك تشفير ملف الكلاس.
4. جعل الكود يعمل على server، وجعل الـ client يتخاطب معه عبر الإنترنت (عبر البروتوكول HTTP مثلاً). وهذه تعتبر أفضل طريقة لحماية الكود من الهاكرز.
التعليقات