top of page
Rechercher

الهندسة العكسية لتطبيقات

  • Photo du rédacteur: find1010
    find1010
  • 2 juin 2018
  • 2 min de lecture

Dernière mise à jour : 5 juin 2018


بسم الله الرحمن الرحيم

نظام الاندرويد من اكثر الانظمه المستخدمة حول العالم , فبينما تقرأ هذه المقالة اكثر من مليون مستخدم قاموا بتحميل تطبيقات الاندرويد . غالبية تطبيقات الاندرويد يتم تحميلها من المتجر الرسمي لشركه جوجل (google play ) لكن بعض المستخدمين يقومون باستخدام مصادر خارجية ليحصلو على التطبيقات المدفوعه مجانا , التي تشكل خطرا كبيرا على مستخدمي هذه التطبيقات لانها على الاغلب يتم تضمينها باضافات خبيثه تمكن المخترق من السيطره على جهاز الضحية .

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

هنالك هدفان لنقوم بهذه العملية :

الهدف التخريبي :

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

  2. المخترقون يريدون سرقه الكود المصدري ليقومو باضافه كود خبيث اليه ثم يرفعوه الى المتجر باسم شبيه بالتطبيق المخترق .

الهدف الجيد :

  1. محللو التطبيقات الخبيثه يقومون بهذه العملية لفهم سلوك التطبيق الخبيث او التطبيق الذي يشتبه بقيامه بامور تخريبيه .

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

ثانيا معلومات عن تطبيقات الاندرويد :

تطبيقات الاندرويد يتم بنائها باستخدام لغه الجافا .

صيغه التطبيق هي .APK وهي احدى الصيغ شبيهة التركيب بال JAR المعروف ( صيغه الكود المترجم للجافا مضغوط مع جميع الملفات اللازمه لتشغيل البرنامج ) .

ال APK يحوي غالبا هذه المجلدات :

META-INF

RES

مع مجموعه من الملفات منها :

AndroidManifest.xml classes.dex resources.arsc

اهم ملفين نريد التركيز عليهما هما AndroidManifest.xml و ملف classes.dex

ملف classes.dex يحوي على الكود المترجم (dalvik bytecode ) الذي سنقوم بعمل هندسه عكسيه له واستخراج الكود وايضا استخراج كود التشغيل على مستوى الاله .smali

ملف AndroidManifest.xml يحوي على الpackage التي سيستخدمها التطبيق والصلاحيات التي سيطلبها التطبيق و اقل نسخه لنظام الاندرويد اللازمه لعمل التطبيق ويحوي جميع المكاتب التي تم وصل التطبيق معها .

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

الطريقة الاولى هي اخذ الكود المصدري بلغه الجافا لكن ستحتاج لبناء التطبيق عن طريق استخدام احد IDE مثل eclipse

حسنات هذه الطريقه : ستحصل على الكود المصدري

سيئات هذه الطريقه : ستحتاج الى الكثير من العمل لبناء التطبيق لانك ساتخذ الكود المصدري وتحاول اعاده بنائه من الصفر الا اذا كنت تريد اجزاء منه .

الطريقه الثانيه هي عكس  ترجمه ملف .dex الى ملفات .smali التي يمكنك من خلالها التعديل المباشر على التطبيق بدون استخدام IDE

حسنات هذه الطريقه :  يمكنك عكس ترجمة الكود ثم ترجمته عن طريق جمله واحده في سطر الاوامر

سيئات هذه الطريقه : يجب ان تكون على علم بملفات .smali التي هي عباره عن لغه الاسمبلي الخاصه بالاندرويد .

البرامج التي سوف نستخدمها في الشرح التوضيحي :

  1. Dex2jar هذه الاده تقوم بعكس ترجمه تطبيق الاندرويد و تحويله من .apk الى .jar .   يمكنك تحمليه من هنا : dex2jar

  2. java decomplier هذه الاداه تقوم بتحويل ال.jar الى .java  حتى تستطيع الحصول على الكود المصدري للبرنامج .  يمكنك تحميله من هنا : Java Decompiler

  3. APKTool : هذه الاداه تقوم بعمل عكس ترجمه للتطبيق لتنتج كود .smali و تستخرج مكونات التطبيق من صور وغيرها .  يمكنك تحميله من هنا : APKTool

  4. JavaSign : هذه الاداه تقوم بختم التطبيق الذي تم اعاده ترجمته حتى يعمل على نظام الاندرويد . يمكنك تحميله من هنا :Javasign

  5. Genymotion : هذا البرنامج يقوم بعمل انظمه اندرويد وهميه حتى تستطيع تجربه التطبيقات عليها . يمكنك تحميله من هنا : GenyMotion

 
 
 

Commentaires


© 2023 by The Book Lover. Proudly created with Wix.com

Join my mailing list

bottom of page