تحليل Split APK في أندرويد لاكتشاف الثغرات

x32x01
  • بواسطة x32x01 ||
  • #1
🔥 لو بتشتغل في Mobile App Penetration Testing أو بتحب مجال Bug Bounty، ففي تفصيلة صغيرة جدًا ممكن تخليك تضيع ثغرة خطيرة من غير ما تاخد بالك… وده بيحصل مع ناس كتير حتى من اللي عندهم خبرة.

الناس متعودة إن تطبيق الأندرويد بيكون عبارة عن ملف واحد فقط اسمه: app.apk
لكن أحيانًا لما تحمل التطبيق أو تسحبه من الموبايل هتلاقيه مش ملف واحد…
هتلاقي عدة ملفات APK بالشكل ده مثلًا:
Code:
base.apk
split_config.arm64.apk
split_config.en.apk
split_config.xxhdpi.apk
وهنا بيبدأ السؤال 🤔
هل ده أكتر من تطبيق؟
ولا إيه اللي بيحصل بالضبط؟

إيه هو Android App Bundle وليه التطبيقات بتتقسم؟​

السبب ببساطة هو تقنية اسمها Android App Bundle.
التقنية دي بقت مستخدمة بشكل أساسي في التطبيقات اللي بتترفع على Google وخاصة في متجر Google Play
الفكرة هنا إن التطبيق بدل ما يكون ملف APK واحد ضخم، بيتم تقسيمه لعدة أجزاء اسمها: Split APKs
كل جزء من الأجزاء دي بيكون مسؤول عن حاجة معينة في التطبيق.



إيه وظيفة كل Split APK ؟​

كل ملف من الملفات دي بيحتوي على جزء معين من التطبيق.
📱 معمارية الجهاز
Code:
split_config.arm.apk
split_config.arm64.apk
ودي مسؤولة عن دعم نوع المعالج.

🌍 اللغة
Code:
split_config.en.apk
split_config.ar.apk
كل لغة بيكون ليها ملفات الموارد الخاصة بيها.

🖥 دقة الشاشة
Code:
split_config.xxhdpi.apk
split_config.xhdpi.apk
علشان التطبيق يشتغل بشكل مثالي على كل أنواع الشاشات.

📦 مكتبات أو موارد إضافية
أحيانًا بيكون في ملفات تحتوي على:
  • مكتبات Native
  • ملفات Resources
  • Features خاصة بالتطبيق



ليه الطريقة دي مفيدة للمستخدم؟​

تقنية Split APKs معمولة علشان تحسن تجربة المستخدم.
المستخدم بدل ما يحمل تطبيق حجمه كبير جدًا…
بيتم تحميل الأجزاء اللي جهازه محتاجها بس.

المميزات 👇
📉 حجم تحميل أقل
⚡ تثبيت أسرع
📱 توافق أفضل مع الجهاز​
لكن هنا المشكلة بتبدأ بالنسبة للي بيحلل التطبيق 😏



الغلطة الكبيرة اللي بيقع فيها الباحثين​

كتير من الباحثين لما ييجوا يعملوا Reverse Engineering للتطبيق بيعملوا حاجة بسيطة… لكنها كارثية.
بيحللوا الملف ده فقط: base.apk
ويتجاهلوا باقي الملفات.
المشكلة إن ده ممكن يخليك تضيع ثغرات مهمة جدًا.



فين ممكن تكون الثغرات مخفية؟​

في تطبيقات كتير بتوزع المعلومات الحساسة داخل ملفات الـ Split APK.
ممكن تلاقي مثلًا:
🔑 API Keys داخل ملفات resources الخاصة بلغة معينة.
Native Libraries داخل ملف المعمارية مثل: split_config.arm64.apk
📦 Features أو كود مخفي داخل ملفات تانية.
بمعنى أبسط…
التطبيق الحقيقي = كل ملفات APK مع بعض
مش ملف واحد بس.



أدوات تحليل تطبيقات الأندرويد​

لو بتشتغل في تحليل التطبيقات أو Android Reverse Engineering فغالبًا هتستخدم أدوات زي:
  • JADX
  • APKTool
  • MobSF
لكن لازم قبل التحليل تتأكد إنك بتتعامل مع كل ملفات التطبيق مش ملف واحد بس.



مثال عملي لتحليل Split APK​

لو سحبت التطبيق من الموبايل باستخدام ADB ممكن تشوف كل ملفات APK الخاصة بيه بالشكل ده:
Code:
adb shell pm path com.example.app
هتلاقي النظام بيرجعلك كل الملفات المرتبطة بالتطبيق.

بعدها تقدر تسحبهم:
Code:
adb pull /data/app/com.example.app/base.apk
adb pull /data/app/com.example.app/split_config.arm64.apk
adb pull /data/app/com.example.app/split_config.en.apk
وبعد كده تبدأ تحليلهم كلهم مع بعض.



الخلاصة في عالم Bug Hunting​

في عالم Mobile Bug Bounty و Mobile Penetration Testing
مش كل الثغرات بتكون مخفية في الكود.
أحيانًا الثغرة بتكون موجودة في جزء من التطبيق… أنت أصلًا ما فتحتهوش.

علشان كده دايمًا افتكر القاعدة دي 👇
أي تطبيق أندرويد حديث = مجموعة Split APKs مش ملف واحد.
ولو تجاهلت جزء منهم…
ممكن تضيع ثغرة كاملة بدون ما تاخد بالك. 🔍🔥
 

المواضيع ذات الصلة

x32x01
الردود
0
المشاهدات
50
x32x01
x32x01
x32x01
الردود
0
المشاهدات
820
x32x01
x32x01
x32x01
الردود
0
المشاهدات
719
x32x01
x32x01
x32x01
الردود
0
المشاهدات
858
x32x01
x32x01
x32x01
الردود
0
المشاهدات
598
x32x01
x32x01
الوسوم : الوسوم
adb android app bundle bug bounty mobile security reverse engineering split apk أمن التطبيقات اختبار الاختراق تحليل التطبيقات تحليل تطبيقات أندرويد
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟

آخر المشاركات

إحصائيات المنتدى
المواضيع
2,387
المشاركات
2,600
أعضاء أكتب كود
573
أخر عضو
x365
عودة
أعلى