كيفية إلغاء ترجمة ملف DEX إلى كود Java الأصلي؟
مرحبًا أيها الزملاء! أنا مبتدئ في تطوير Android وهندسة عكسية. واجهت مشكلة: لدي ملف APK (تطبيق Android عادي)، وأريد أن أرى كيف تعمل بعض المنطقيات داخله. أعلم أن bytecode الخاص بـ Java (JVM) يتم ترجمته إلى DEX (Dalvik Executable) لنظام Android. لكن كيف يمكنني الحصول على كود Java قابل للقراءة من هذا DEX؟
حاولت فتح APK كأرشيف ZIP والعثور على classes.dex، لكنه ملف ثنائي لا يمكن قراءته. جربت تحويل DEX إلى JAR باستخدام أداة dex2jar، ثم فتح JAR في أداة إلغاء الترجمة (مثل JD-GUI). في بعض الحالات يعمل هذا، لكن غالبًا ما يكون الكود مشوشًا (a, b, c بدلاً من أسماء المتغيرات) أو يتعطل تمامًا.
إليك مثال لما أراه بعد إلغاء الترجمة:
```java
public class a {
public static String
```