كيف يمكنني فتح ملفات Java .class بطريقة يمكن قراءتها بواسطة الإنسان؟

StackOverflow https://stackoverflow.com/questions/76314

  •  09-06-2019
  •  | 
  •  

سؤال

أحاول معرفة ما يفعله ملف فئة برنامج Java الصغير تحت الغطاء.يؤدي فتحه باستخدام Notepad أو Textpad إلى إظهار مجموعة من الأشياء المزعجة.

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

  • البيئة == تم تثبيت Windows مع VS 2008.
هل كانت مفيدة؟

المحلول

jd-gui هو أفضل برنامج فك التشفير في الوقت الراهن.يمكنه التعامل مع الميزات الأحدث في Java، مقارنةً بـ JAD.

نصائح أخرى

إذا كنت لا تمانع في قراءة الرمز الثانوي، فمن المفترض أن يعمل javap بشكل جيد.إنه جزء من تثبيت JDK القياسي.

Usage: javap <options> <classes>...

where options include:
   -c                        Disassemble the code
   -classpath <pathlist>     Specify where to find user class files
   -extdirs <dirs>           Override location of installed extensions
   -help                     Print this usage message
   -J<flag>                  Pass <flag> directly to the runtime system
   -l                        Print line number and local variable tables
   -public                   Show only public classes and members
   -protected                Show protected/public classes and members
   -package                  Show package/protected/public classes
                             and members (default)
   -private                  Show all classes and members
   -s                        Print internal type signatures
   -bootclasspath <pathlist> Override location of class files loaded
                             by the bootstrap class loader
   -verbose                  Print stack size, number of locals and args for methods
                             If verifying, print reasons for failure

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

ما تبحث عنه هو برنامج إلغاء التحويل البرمجي لجافا.أوصي جاد http://www.kpdus.com/jad.html إنه مجاني للاستخدام غير التجاري وينجز المهمة.

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

cpuguru، إذا تم تجميع برنامجك الصغير باستخدام javac 1.3 (أو أقل)، فإن أفضل خيار لك هو استخدام Jad.

لسوء الحظ، آخر JDK مدعوم بواسطة JAD 1.5.8 (14 أبريل 2001) هو JDK 1.3.

إذا تم تجميع برنامجك الصغير باستخدام مترجم أحدث، فيمكنك المحاولة دينار-واجهة المستخدم الرسومية :برنامج فك الترجمة هذا قيد التطوير، ومع ذلك، فهو يولد مصادر Java الصحيحة، في معظم الأحيان، للفئات المترجمة باستخدام JDKs 1.4 أو 1.5 أو 1.6.

دارين دبليو، شكرا لمشاركتك.JD-GUI ليس أفضل برنامج فك ترجمه حتى الآن ...لكني أعمل على :)

كما أشارMichaelMyers، استخدم

javap -c <name of java class file> 

للحصول على رمز تجميع JVM.يمكنك أيضًا إعادة توجيه الإخراج إلى ملف نصي لرؤية أفضل.

javap -c <name of java class file> > decompiled.txt

استخدام جاد ربما يكون فك ترجمته هو خيارك الأفضل.ما لم يتم تشويش الكود، فإنه سيعطي نتيجة جيدة.

هذا كود مجمع، ستحتاج إلى استخدام برنامج فك الترجمة مثل JAD: http://www.kpdus.com/jad.html

تحتاج إلى استخدام برنامج فك التشفير.اقترح آخرون JAD، وهناك خيارات أخرى، JAD هو الأفضل.

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

JAD و/أو البرنامج المساعد JADclipse Eclipse، بالتأكيد.

إذا كان ملف الفئة الذي تريد البحث فيه مفتوح المصدر، فلا ينبغي عليك فك ترجمته، بل قم بدلاً من ذلك بإرفاق الملفات المصدر مباشرة في IDE الخاص بك.بهذه الطريقة، يمكنك فقط عرض كود بعض فئات المكتبة كما لو كان خاصًا بك

جد غوي "http://code.google.com/p/innlab/downloads/detail?name=jd-gui-0.3.3.windows.zip&can=2&q=" هو الخيار الأفضل والأكثر سهولة في الاستخدام لفك ترجمة ملف .class....

كما هو مقترح، يمكنك استخدام JAD لفك ترجمته وعرض الملفات.لتسهيل القراءة، يمكنك استخدام البرنامج المساعد JADclipse لـ Eclipse لدمج JAD مباشرة مع Eclipse أو استخدام DJ Java Decompiler وهو أسهل بكثير في الاستخدام من سطر الأوامر JAD

يعد JAD خيارًا ممتازًا إذا كنت تريد كود Java قابلاً للقراءة كنتيجة لذلك.إذا كنت تريد حقًا البحث في الأجزاء الداخلية من .class على الرغم من ذلك، سوف تريد تنسيق الملف javap.إنه مرفق مع JDK ويسمح لك "بفك ترجمة" الكود الثانوي السداسي العشري إلى ASCII القابل للقراءة.اللغة التي تنتجها لا تزال عبارة عن كود ثانوي (ليست مثل لغة Java)، ولكنها قابلة للقراءة إلى حد ما ومفيدة للغاية.

أيضا، إذا كنت حقًا تريد، يمكنك فتح أي .class ملف في محرر سداسي عشري وقراءة الرمز الثانوي مباشرة.والنتيجة مماثلة للاستخدام javap.

ليست هناك حاجة إلى إلغاء ترجمة Applet.class.يأتي الكود المصدري لفئات Java API العامة مع JDK (إذا اخترت تثبيته)، ويكون قابلاً للقراءة بشكل أفضل من الكود الثانوي الذي تم فك ترجمته.يمكنك العثور عليه مضغوطًا في src.zip (الموجود في مجلد تثبيت JDK).

CFR - برنامج فك تشفير جافا آخر هو برنامج فك تشفير رائع لجافا الحديثة المكتوبة في Java 6.

يمكنك أيضًا استخدام برامج فك تشفير جافا المتاحة عبر الإنترنت.على سبيل المثال. http://www.javadecompilers.com

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