android - تطبيقات - تحويل ملف apk الى سورس كود




هل هناك طريقة للحصول على شفرة المصدر من ملف APK؟ (11)

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

هل هناك أي طريقة لاستخراج شفرة المصدر من ملف APK هذا؟


أدناه أداة عبر الإنترنت :

http://www.javadecompilers.com/apk

انها تفعل كل بنقرة واحدة: decompiled .java files + resources + xml (في ملف .zip واحد) مع decompiler جيد جدا (jadx java كود العودة في الأماكن / وظائف حيث ترجمات أخرى ترجع التعليقات داخل وظيفة مثل "غير قادر على فك أو" بعض مجمع android / رمز الجهاز)


أنا شخصيا أوصي Show Java Android App للحصول على الكود المصدري. يمكنك تنزيله من متجر الألعاب أو من here


سوف apktool العمل. أنت لا تحتاج حتى إلى معرفة keystore لاستخراج شفرة المصدر (وهو أمر مخيف بعض الشيء). الجانب السلبي الرئيسي هو أن المصدر يتم تقديمه بتنسيق Smali بدلاً من Java. ملفات أخرى مثل الأيقونة و main.xml تأتي بشكل جيد على الرغم من أنه قد يستحق وقتك على الأقل لاستعادة تلك. في النهاية ، ستحتاج على الأرجح إلى إعادة كتابة شفرة جافا من البداية.

يمكنك أن تجد apktool here . ما عليك سوى تنزيل ملف apktool والمساعد المناسب (لنظام التشغيل Windows أو Linux أو Mac OS). أوصي باستخدام أداة مثل 7-zip لتفريغها.


سوف تظهر لك طريقة أخرى لفك ملفات .apk .

يمكنك اتباع أول خطوتين من " prankul garg ". لذلك لديك فرص أخرى:

الخطوه 3':

قم بتنزيل "JD-GUI" ، من السهل العثور على هذا. افتح ملف .jar الخاص بك في "jd-gui.exe". (ملف> فتح ملف> "العثور على ملف .jar الخاص بك"). بعد هذا الإجراء ، يمكنك حفظ جميع الموارد في ملف .zip .

وبالتالي،

1 - يجب إعادة تسمية الملف .apk إلى .zip

2 - عليك فك تشفير ملف .dex (إذا كنت تريد ، فك تشفير ملف .apk إلى dex2jar ، وهذا ممكن)

3 - يجب عليك فك تشفير ملف .jar باستخدام JD-GUI


على الرغم من أنك قد تتمكن من فك ملف APK ، فمن المحتمل أن تصل إلى مشكلة كبيرة واحدة:

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

للأسف ، أدت أشياء كهذه إلى مقتل العديد من المشاريع.
بالنسبة للمستقبل ، أوصي بشدة بتعلم نظام التحكم في الإصدار ، مثل CVS و SVN و git إلخ.

وكيفية دعمها.



هذا وصف بديل - فقط في حالة تمسّك أحدهم بالوصف أعلاه. اتبع الخطوات:

  1. تحميل apktool.bat (أو apktool لنظام التشغيل Linux) و apktool_<version>.jar من http://ibotpeaches.github.io/Apktool/install/
  2. إعادة تسمية ملف جرة من أعلاه إلى apktool.jar ووضع كلا الملفين في نفس المجلد

  3. فتح مربع dos ( cmd.exe ) وتغيير في هذا المجلد؛ تحقق من تثبيت بيئة Java (بالنسبة لـ Linux ، تحقق من الملاحظات المتعلقة بالمكتبات المطلوبة أيضًا)
  4. بدء: apktool decode [apk file]

    النتيجة الوسيطة : ملفات الموارد ، AndroidManifest.xml

  5. بفك ملف APK مع فاتح الحزم من اختيارك

    النتيجة الوسيطة : classes.dex

  6. تنزيل واستخراج dex2jar-0.0.9.15.zip من http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  7. سحب وإفلات classes.dex على dex2jar.bat (أو أدخل <path_to>\dex2jar.bat classes.dex في مربع DOS ؛ لاستخدام Linux dex2jar.sh )

    النتيجة الوسيطة : classes_dex2jar.jar

  8. فك classes_dex2jar.jar (قد يكون اختياريًا اعتمادًا على decompiler المستخدم)
  9. فك ملفات الصف الخاصة بك (على سبيل المثال مع JD-GUI أو DJ Decompiler )

    النتيجة : شفرة المصدر

ملاحظة: لا يسمح بفك حزم الطرف الثالث. يهدف هذا الدليل إلى استرداد شفرة المصدر الشخصية من ملف APK فقط ؛ وأخيرًا ، من المرجح أن يكون الرمز الناتج غامضًا


هناك أيضًا تطبيق جديد على متجر Play والذي من الممكن إلغاء تحميل apk (تطبيقات النظام أيضا) وعرض الكود المصدري مباشرة على هاتفك الذكي. يقوم بحفظ الملفات على بطاقة SD الخاصة بك حتى تتمكن من عرضها على جهاز الكمبيوتر الخاص بك أيضًا. لا يتطلب الجذر أو أي شيء آخر.

مجرد تركيب والمتعة. أعتقد أن هذه هي أسهل طريقة لفك تشفير التطبيق.


يمكنك أن تجرب DexPatcher . حتى أنه يتكامل مع Android Studio. ويستخدم apktool و Dex2Jar داخليا.
يمكنك استخدام هذه الأدوات بشكل مستقل كذلك. apktool decompiles apk ، ومقتطفات ملفات .dex ، والتي يمكن تحويلها إلى جرة أخرى باستخدام Dex2Jar. يمكن تفكيك جرة باستخدام JD-GUI . يمكنك رؤية رمز Java بمساعدة هذه الأداة. على الرغم من أن تشابه الشفرة التي تم فك شفرةها إلى الكود الفعلي لا يمكن ضمانه. هناك بعض أدوات تشفير الشفرة المتطورة المتوفرة في السوق ، والتي تفسد الشفرة لتجعل من الصعب فك الشفرة / الفهم. على سبيل المثال. Proguard


apktool هو أفضل شيء يمكنك تجربته. لقد قمت بحفظ بعض xml معها ، ولكن بصراحة لا أعرف كيف ستعمل مع. java code.

أنصحك بأن يكون لديك مستودع للشفرات حتى لو كان المشفر الوحيد. لقد تم استخدام Project Locker لمشاريعي الخاصة. فهو يوفر لك svn و git repos مجاناً.


apktool هو الطريق للذهاب. خدمة apktool على الإنترنت موجودة كذلك: http://www.javadecompilers.com/apktool

من الواضح أن بعض القيود موجودة بسبب "طبيعة الإنترنت" للخدمة: يمكنك استخراج الأصول والبحث عنها والملف الظاهر ، ولكن من المستحيل إعادة تجميع التطبيق في الوقت الحالي.

ومع ذلك ، فهذه طريقة غير قابلة للفتح لـ "فتح" تطبيق Android.





apk