لماذا لا يمكن اختراق الأندرويد بصورة أو PDF؟

x32x01
  • بواسطة x32x01 ||

ليه ماينفعش اختراق الأندرويد بصورة أو ملف PDF؟ 🤔

الناس كتير بتخاف من فكرة إن ممكن صورة أو PDF تخترق الموبايل، بس الحقيقة إن ده مستحيل فعليًا من الناحية التقنية.
علشان تفهم السبب، لازم نعرف الأول إزاي بيشتغل تطبيق الأندرويد جوه النظام، وده اللي هنشرحه خطوة بخطوة.

يعني إيه Virtual Machine (آلة افتراضية)؟​

الـVirtual Machine أو الـVM ببساطة هي نظام تشغيل وهمي بيشتغل فوق نظامك الأساسي.
بتستخدم جزء من الرام والهارد كأنها جهاز منفصل، ومن أشهر البرامج اللي بتوفرها:
VMware وVirtualBox.

مثال بسيط:​

لغة Java عندها حاجة اسمها Java Virtual Machine (JVM).
الكود اللي بيتكتب بلغة Java مش بيتحول مباشرة لكود الآلة، لأ، بيتحول لحاجة اسمها Bytecode.
وده اللي بيخلي نفس البرنامج يشتغل على أي نظام تشغيل عنده JVM، سواء ويندوز أو لينكس أو ماك.
Java:
// مثال بسيط على كود Java
class Hello {
  public static void main(String[] args) {
    System.out.println("Hello Android!");
  }
}
لما الكود ده يتترجم بـ javac Hello.java، بيتحول لملف اسمه Hello.class
وده بيشتغل جوه الـJVM مش مباشرة على الهاردوير.

JVM: الآلة الافتراضية لجافا ☕

الـJVM اتعملت علشان تشغل كود الجافا على أي نظام،
لكنها تقيلة شوية ومصممة لأجهزة الكمبيوتر مش للموبايلات.
وده اللي خلى Google تبتكر حل جديد خاص بالموبايل.

Dalvik Virtual Machine (DVM): قلب أندرويد القديم 💚

لما بدأت Google تطوير Android، استخدمت لغة Java بس ما استخدمتش JVM،
لأنها كانت عايزة حاجة خفيفة وسريعة تناسب الأجهزة اللي بطاريتها ضعيفة ومعالجها محدود.
فابتكرت حاجة اسمها Dalvik Virtual Machine (DVM).

الـDVM اتعمل مخصوص للأجهزة المحمولة، وكان بيحوّل الأكواد من .java إلى .dex،
ودي صيغة مضغوطة وسريعة.

الفرق بين JVM وDVM:​

المقارنةJVMDVM
المعماريةتعتمد على الـStackتعتمد على الـRegister
الملفات.class.dex
النظاممتعدد الأنظمةAndroid فقط
الأداءتقيل على الموبايلسريع وخفيف
يعني باختصار، DVM هي النسخة الخفيفة من JVM المخصصة للأندرويد.

ليه جوجل استخدمت DVM بدل JVM؟ 😎

السبب الرئيسي إن DVM:
  • بتستهلك ذاكرة أقل
  • بتشتغل بسرعة أعلى
  • بتناسب الأجهزة ضعيفة الإمكانيات
JVM مصممة لأجهزة الكمبيوتر مش للموبايلات، وده كان هيخلي الأندرويد بطئ جدًا
لو استخدمناها زي ما هي.

Android Runtime (ART): الجيل الجديد من DVM 🚀

مع مرور الوقت، Google اكتشفت إن DVM برضو فيها مشاكل.
فمن أول Android 4.4 (KitKat) بدأت تستخدم نظام جديد اسمه ART (Android Runtime).

الفرق إن ART بيحوّل الأكواد كلها مرة واحدة وقت التثبيت بدل ما يترجمها كل مرة البرنامج يشتغل.
وده خلى الأداء أسرع واستهلاك البطارية أقل.

مثال توضيحي:​

  • في DVM: كل مرة تفتح التطبيق → بيترجم الكود → يستهلك بطارية ومعالج.
  • في ART: أول مرة تثبّت التطبيق فقط → بيترجم → بعد كده بيشتغل بسرعة البرق ⚡

طيب كل ده ليه يهمنا؟ 🤨

لأن علشان أي كود يشتغل في أندرويد، لازم يعدي على الآلة الافتراضية (DVM أو ART).
وده بيحصل فقط مع تطبيقات أندرويد الحقيقية بصيغة .apk.

يعني لو عندك صورة أو PDF، فهي مجرد ملفات بيانات، مش برامج تنفيذية.
نظام الأندرويد مش هيسمح لها إنها توصل للمترجم أو الـVM أصلاً.

إذًا ليه الناس بتقول "ملف PDF ممكن يخترقك"؟ ⚠️

الفكرة دي جاية من أنظمة تشغيل تانية (زي ويندوز)
اللي ممكن يكون فيها ثغرات في عارض الـPDF أو برنامج الصور.
لكن في أندرويد، التطبيقات بتشتغل في حاجة اسمها Sandbox -
وده يعني إن كل تطبيق معزول ومش يقدر يدخل على ملفات أو موارد تطبيق تاني.

حتى لو فيه كود خبيث في PDF، مش هيشتغل إلا لو تم تشغيله في بيئة تسمح له بكده،
وده مستحيل بدون صلاحيات أو APK فعلي.

طيب هل في أي استثناءات؟​

الاختراق ممكن فقط في حالة واحدة:
لو التطبيق اللي بيفتح الصورة أو PDF فيه ثغرة خطيرة جدًا
وبيسمح بتشغيل كود خارجي (وده نادر جدًا ومش بيستمر أكتر من أيام لأن Google بتقفلها فورًا).

خلاصة الكلام 💡

  • الملفات زي الصور وPDFs ما تقدرش تنفذ أكواد في أندرويد.
  • الكود بيتشغل بس جوه Dalvik أو ART.
  • مافيش وصول للمترجم أو النظام إلا من خلال ملف APK موقع رسمي.
  • أي تطبيق مش من Google Play لازم تتأكد من مصدره.

نصايح لحماية موبايلك من أي محاولة اختراق 📱

  1. ما تفتحش ملفات APK من مصادر مجهولة.
  2. فعّل Google Play Protect من الإعدادات.
  3. حدّث النظام دايمًا.
  4. استخدم تطبيق مكافحة فيروسات موثوق.
  5. راقب الأذونات (Permissions) لأي تطبيق جديد.

كود فحص الأذونات بسرعة​

تقدر تكتب الكود ده في Android Studio عشان تشوف صلاحيات التطبيقات:
Java:
PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo("com.example.app", 0);
String[] permissions = pm.getPackageInfo(appInfo.packageName, PackageManager.GET_PERMISSIONS).requestedPermissions;
for (String permission : permissions) {
    Log.d("PERMISSION", permission);
}

الخلاصة النهائية 🧠

باختصار، اختراق الأندرويد بصورة أو PDF مجرد خرافة.
اللي بيحدد إمكانية التنفيذ هو البيئة (Environment)،
وبما إن الأندرويد بيشتغل جوه Dalvik أو ART، فالكود اللي جوه صورة أو PDF
مستحيل يتنفذ إلا لو اتحوّل لتطبيق APK رسمي وتم تثبيته بإيد المستخدم.
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
729
x32x01
x32x01
x32x01
الردود
0
المشاهدات
571
x32x01
x32x01
x32x01
الردود
0
المشاهدات
717
x32x01
x32x01
x32x01
الردود
0
المشاهدات
642
x32x01
x32x01
x32x01
  • x32x01
الردود
0
المشاهدات
434
x32x01
x32x01
x32x01
الردود
0
المشاهدات
573
x32x01
x32x01
x32x01
الردود
0
المشاهدات
809
x32x01
x32x01
x32x01
الردود
0
المشاهدات
715
x32x01
x32x01
x32x01
الردود
0
المشاهدات
458
x32x01
x32x01
x32x01
الردود
0
المشاهدات
134
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
1,836
المشاركات
2,051
أعضاء أكتب كود
460
أخر عضو
jhghk
عودة
أعلى