استضافة cPanel

2018-04-06

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

دورة السي بانل cPanel - سجّل مجّانا
بسم الله الرحمن الرحيم

والصلاة والسلام على أشرف المرسلين

سيدنا محمد وعلى آله وصحبه أجمعين

خطأ شائع بين العديد من مطوري التطبيقات المبتدئين وهو نشر التطبيقات بدون تأمينها ، فقد يفاجأ المطور بإستخدام الهكر لمصادر أكواد تطبيقاته ويعدل عليها وينسبها لنفسه دون مراعاة أى حقوق ملكية ، يتم ذلك للأسف بسهولة بإستخدام تقنية الهندسة العكسية ، لذلك سأناقش معكم فى هذا الموضوع بعض النقاط:
  1. فكرة سريعة عن الهندسة العكسية
  2. كيف يستخدم الهاكر الهندسة العكسية لمعرفة مصدر كود تطبيقك؟
  3. ما هى الأدوات التى يمكن استخدامها لحماية تطبيقاتك ؟
حماية مصدر كود تطبيق الأندرويد

ما هى الهندسة العكسية Reverse Engineering ؟ 

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

مدى قانونية الهندسة العكسية:

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

كيف يستخدم الهاكر الهندسة العكسية لمعرفة مصدر كود تطبيقك؟  

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

أدوات حماية التطبيقات من الهندسة العكسية:

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

 آلية عمل أداة ProGuard :

تقوم هذه الأداة بتغيير أسماء الـ Classes , methods وإستبدالها برموز غير مفهومة يصعب قراءتها ، ليس ذلك فقط ولكن هناك ميزة أخرى لهذه الأداة وهى  تقليل حجم التطبيق وذلك عن طريق حذف الأكواد الغير مستخدمة فى التطبيق.

كيفية إستخدام Proguard ببرنامج أندرويد ستوديو

  • توجه الى ملف build.gradle وقم بتغير قيمة minifyEnabled  الى  true
android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }
    ...
}


build.gradle

  • إذا أردت اضافة ميزة تصغير حجم الكود ، قم بإضافة هذا السطر أيضا بعد minifyEnabled true

shrinkResources true
لاحظ فى الكود أعلاه ملف proguard-android.txt ، هذا الملف موجود فى SDK وهو المسئول عن التشفير وستجده فى هذا المسار :
tools/proguard/proguard-android-optimize.txt
  • إذا أردت منع تشفير Class معين داخل مشروعك يمكنك التعديل على ملف  proguard-android.txt و تقوم بإضافة هذا السطر:

-keep public class <myclass>
مع إستبدال myclass بإسم الكلاس الذى لا تريد تشفيره

أو يمكنك أيضًا إضافة بعض القواعد إلى  ملف proguard-rules.pro 
وذلك لتفادى مشكلة حذف الأكواد المهمة التى يحتاجها تطبيقك.

 -keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
 
-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public void set*(...);
}
 
-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}
  
فى النهاية:
 ليس هناك ما يعرف بالحماية الكاملة أى أنه من الصعب أن تؤمن التطبيق بنسبة  100% ، لكن هذه الطرق تصعب على الهكر عملية القرصنة ، وتحمى تطبيقك بنسبة كبيرة من السرقة.
مصادر : 1 , 2 , 3
تنبيه : المرجو عدم نسخ الموضوع بدون ذكر مصدره المرفق بالرابط المباشر للموضوع الأصلي وإسم المدونة وشكرا
تصميم مواقع إلكترونية و تطبيقات بأقل الأسعار

هناك تعليق واحد

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

	
دليل المدون
Privacy-Policy | إعلن لدينا
جميع الحقوق محفوظة لــ كن داعيا للخير 2011-2019 ©

تصميم كن مدون