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