سؤال

هل يمكن للمستخدمين تحويل ملف APK لتطبيقي إلى الكود الفعلي؟ إذا فعلوا ذلك - هل هناك أي طريقة لمنع هذا؟

هل كانت مفيدة؟

المحلول

أولا ، و ملف APK هو مجرد ملف جرة معدلة. لذا فإن السؤال الحقيقي هو هل يمكنهم فك تفكيك ملفات DEX في الداخل. الجواب نوع من. هناك بالفعل disassemblers ، مثل Dedexer و سمالي. يمكنك أن تتوقع أن تتحسن هذه فقط ، ومن الناحية النظرية ، يجب أن يكون من الممكن في النهاية إلغاء تجميع مصدر Java الفعلي (على الأقل في بعض الأحيان). انظر السؤال السابق إزالة تجميع DEX في Java Sourcecode.

ما يجب أن تتذكره هو التشويش لا يعمل أبدًا. اختر ترخيصًا جيدًا وابذل قصارى جهدك لفرضه من خلال القانون. لا تضيع الوقت مع التدابير الفنية غير الموثوقة.

نصائح أخرى

من الممكن إلغاء تجميع ملف APK. ولكن قد يكون من الصعب فهم الكود إذا تم تشويهه.

Apktool لعرض الموارد داخل ملف APK

  • يستخرج AndroidManifest.xml وكل شيء في مجلد RES (تخطيط ملفات XML ، الصور ، HTMLS المستخدمة في WebView إلخ ..)
  • يأمر : apktool.bat d sampleApp.apk
  • ملاحظة: يمكنك تحقيق ذلك باستخدام أداة zip مثل 7-ZIP. ولكن ، فإنه يستخرج ملف .smali لجميع ملفات .class.

باستخدام DEX2JAR

  • يولد ملف .jar من ملف .APK ، نحتاج إلى JD-GUI لعرض الرمز المصدر من هذا .jar.
  • يأمر : dex2jar sampleApp.apk

decompiling .jar باستخدام JD-Gui

  • يحلل ملفات .class (المعتمدة- في حالة تطبيق Android ، ولكن يتم الحصول على رمز أصلي قابل للقراءة في حالة ملف .jar آخر). أي ، نعيد .java من التطبيق.

قد أضيف أيضًا ، في الوقت الحاضر ، من الممكن إلغاء توحيد تطبيق Android عبر الإنترنت ، لا يلزم وجود برنامج!

إليك خياران لك:

قم بتنزيل أداة JADX هذه https://sourceforge.net/projects/jadx/files/

قم بإلغاء الضغط عليه ، ومن في مجلد LIB ، قم بتشغيل ملف JADX-GUI-0.6.1.JAR الآن تصفح ملف APK الخاص بك. تم التنفيذ. سيقوم APK تلقائيًا بإلغاء توسيعه وحفظه بالضغط على زر حفظ. اتمنى ان يعمل لصالحك. شكرًا

في بعض الأحيان تحصل على رمز مكسور عند استخدامه dex2jar/apktool, وأبرزها في الحلقات. لتجنب هذا ، استخدم جادكس, ، الذي يقلل من Dalvik Bytecode إلى رمز مصدر Java ، دون إنشاء ملف .jar/.class ملف أولا dex2jar لا (يستخدم Apktool Dex2Jar على ما أعتقد). كما أنه مفتوح المصدر وفي التنمية النشطة. حتى أنه يحتوي على واجهة المستخدم الرسومية ، ل gui-fanatics. جربها!

هل يمكن للمستخدمين تحويل ملف APK لتطبيقي إلى الكود الفعلي؟

نعم.

يمكن للناس استخدام أدوات مختلفة ل:

  • التحليل: APK الخاص بك
  • فك الشفرة/اختراق APK الخاص بك
    • استخدام FDex2 لتفريغ dex ملف
      • ثم باستخدام dex2jar لتحويل إلى jar
        • ثم باستخدام jadx للتحول إلى java مصدر الرمز

إذا فعلوا ذلك - هل هناك أي طريقة لمنع هذا؟

نعم. العديد من الطرق (يمكن مجتمعة) لمنع (درجة معينة) هذا:

  • المستوى المنخفض: تعديل الكود
    • باستخدام Android ProGuard
  • المستوى العالي: استخدام سيناريو Android Harden

مزيد من التفاصيل يمكن أن تحيل بلدي صينى الدورة التعليمية: 安卓 应用 的 安全 和

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top