كيف يمكنني "إلغاء ترجمة" ملفات فئة Java؟[مغلق]

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

  •  07-07-2019
  •  | 
  •  

سؤال

ما البرنامج الذي يمكنني استخدامه لفك ملف فئة؟هل سأحصل بالفعل على كود Java، أم أنه مجرد كود تجميع JVM؟

في أسئلة أداء Java على هذا الموقع، غالبًا ما أرى ردودًا من الأشخاص الذين "قاموا بتفكيك" ملف فئة Java لمعرفة كيف يقوم المترجم بتحسين أشياء معينة.

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

المحلول

تحديث فبراير 2016:

www.javadecompilers.com يسرد JAD على أنه:

برنامج فك تشفير Java الأكثر شيوعًا، ولكن في المقام الأول في هذا العصر فقط.تمت كتابته بلغة C++، وهو سريع جدًا.
قديم وغير مدعوم ولا يتم فك ترجمته بشكل صحيح لـ Java 5 والإصدارات الأحدث

لذلك قد يختلف عدد الأميال المقطوعة مع jdk الأخير (7، 8).

نفس الموقع يسرد الأدوات الأخرى.

وjavadecompiler، كما أشار سلفادور فالنسيا في التعليقات (سبتمبر 2017)، يقدم SaaS حيث يمكنك تحميل ملف .class الملف إلى السحابة ويعيد لك الكود الذي تم فك ترجمته.


الإجابة الأصلية:أكتوبر2008

  • تم نشر الإصدار الأخير من JSR 176، الذي يحدد الميزات الرئيسية لـ J2SE 5.0 (Java SE 5)، في 30 سبتمبر 2004.
  • أحدث نسخة جافا مدعومة ببرنامج JAD، برنامج فك تشفير Java الشهير الذي كتبه السيد.بافل كوزنتسوف جى دي كيه 1.3.
  • يتم تشغيل معظم برامج فك تشفير Java التي يمكن تنزيلها اليوم من الإنترنت، مثل "DJ Java Decompiler" أو "Cavaj Java Decompiler"، بواسطة JAD:لا يمكنهم عرض مصادر Java 5.

جافا المنقح (برنامج فك تشفير Java سريع آخر) يحتوي على:

  • دعم صريح لفك وتحليل جافا 5+ ملفات ".class".
  • واجهة المستخدم الرسومية لطيفة:

screenshot

يعمل مع المترجمين من JDK 1.1.8 إلى JDK 1.7.0 وغيرهم (هززات, جي روكيت, ، إلخ.).

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

نصائح أخرى

هناك عدد قليل من برامج فك التشفير هناك ...نتائج البحث السريع:

  1. بروسيون:مفتوح المصدر (Apache 2) ومتطور بشكل نشط
  2. كراكاتوا:مفتوح المصدر (GPLv3) ومتطور بشكل نشط
  3. CFR:مفتوحة المصدر (MIT) ومتطورة بنشاط
  4. جاد
  5. دي جي جافا ديكومبيلر
  6. موكا

و أكثر من ذلك بكثير.

هذه تنتج كود جافا.تأتي Java مع شيء يتيح لك رؤية رمز بايت JVM (javap).

لرؤية كود مصدر Java، تحقق من بعض برامج فك التشفير.اذهب للبحث عن جاد.

إذا كنت تريد رؤية الرموز الثانوية، فما عليك سوى استخدام javap والذي يأتي مع JDK.

حاولت عدة، و بروسيون يبدو أنه يعمل بشكل أفضل بالنسبة لي.إنه قيد التطوير النشط ويدعم العديد من ميزات أحدث إصدارات Java.

هؤلاء هم الآخرون الذين حاولت:

  • CFR
    • طريقة فك الترجمة واعدة ولكنها فاشلة في كثير من الأحيان.سأبقي عيني على هذا واحد.تم تطويره أيضًا بشكل نشط مع دعم أحدث ميزات Java.
  • كراكاتوا
    • يتبع أسلوبًا مختلفًا حيث يحاول إخراج تعليمات برمجية Java مكافئة بدلاً من محاولة إعادة بناء المصدر الأصلي، والذي لديه القدرة على جعله أفضل للتعليمات البرمجية المبهمة.من الاختبار الذي أجريته، كان تقريبًا على قدم المساواة مع Procyon، ولكن لا يزال من الجيد أن يكون لديك شيء مختلف.لقد اضطررت إلى استخدام -skip علامة سطر الأوامر حتى لا تتوقف عن الأخطاء.تم تطويره بشكل نشط، ومن المثير للاهتمام أنه مكتوب بلغة بايثون.
  • دينار-واجهة المستخدم الرسومية
  • جاد

JAD المنقح .

وهناك الكسوف المساعد له، <وأ href = " http://sourceforge.net/projects/jadclipse/ "يختلط =" نوفولو noreferrer "> jadeclipse . ومن الجميل جدا.

بروسيون يتضمن برنامج فك التشفير.إنها البرمجيات الحرة والمفتوحة المصدر.

سخام هو خيار لكود Java الأحدث.على الأقل تتمتع بميزة استمرار صيانتها مؤخرًا ...

أيضًا، جافا المنقح هو برنامج فك التحويل البرمجي مع واجهة المستخدم الرسومية المستقلة وتكامل Eclipse.

أخيرا، Jdec لم يتم ذكرها، على الرغم من أنها ليست مصقولة مثل الخيارات الأخرى.

JD-GUI هو جيد حقا. هل يمكن أن مجرد فتح ملف JAR واستعرض من خلال الكود كما لو كنت تعمل على IDE. الأشياء الجيدة.

فيما يلي قائمة ببرامج فك التشفير اعتبارًا من فبراير 2015:

بروسيون, مفتوح المصدر, https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler

CFR, ، مجاني، لا يوجد كود مصدر متاح، http://www.benf.org/other/cfr/

دينار أردني, ، مجاني للاستخدام غير التجاري فقط، http://jd.benow.ca/

السرخس, مفتوح المصدر, https://github.com/fesh0r/fernflower,

جاد - مذكور هنا فقط لسبب تاريخي.مجاني، لا يوجد كود مصدر متاح، http://varanecas.com/jad/قديم وغير مدعوم ولا يتم فك ترجمته بشكل صحيح لـ Java 5 والإصدارات الأحدث.

يمكنك اختبار برامج فك التشفير المذكورة أعلاه عبر الإنترنت، دون الحاجة إلى التثبيت، ثم قم باختيارك المدروس.

برامج فك تشفير جافا في السحابة: http://www.javadecompilers.com/

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

DJ المنقح موكا

وتستند معظم decompilers للجافا على JAD . إنها أداة عظيمة، ولكن للأسف لم يتم تحديث لبعض الوقت وليس التعامل مع فئات Java 1.5+ بشكل جيد للغاية. أنا لم أر أي الأدوات التي من شأنها التعامل مع 1.5+ الطبقات بشكل صحيح.

ونلقي نظرة على cavaj .

ويبدو أن كسر جميع الروابط JAD المدرجة حتى الآن بعيدا، لذلك وجدت هذا الموقع. يعمل كبيرة (لينكس، على الأقل)! على أوبونتو 11.10 اضطررت للتحميل واحد ثابت لأي سبب من الأسباب.

http://www.varaneckas.com/jad

  • JAD هو تطبيق فعال وبسيط.

  • أيضًا، إذا كنت تريد فقط رؤية الطرق، فاستخدم javap.

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

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

في IntelliJ للمنصة IDEA يمكنك استخدام جافا المنقح IntelliJ للالمساعد . انها تسمح لك لعرض كافة مصادر جافا أثناء عملية التصحيح، حتى لو لم يكن لديك كل منهم. لأنه يقوم على الأدوات الشهيرة JD-GUI .

AndroChef جافا المنقح الذي يمكن فك APK، التنفيذ المباشر، جرة وجافا ملفات فئة. انها بسيطة وسهلة. ويستند AndroChef JD على FernFlower . يمكنك تقييم ذلك في 10 استخدامات الحرة.

<اقتباس فقرة>   

وAndroChef يدعم ميزات لغة جافا مثل الوراثة، وتتضمن التعدادات وشروحه. ووفقا لبعض الدراسات، AndroChef جافا المنقح قادرة على فك 98.04٪ من تطبيقات جافا ولدت مع المجمعين جافا التقليدية - معدل استرداد عالية جدا. هو أداة بسيطة ولكنها قوية تسمح لك فك جافا وفي Dalvik بايت كود (DEX، APK) في المصدر جافا قابل للقراءة.

لOSX أوصي: jarzilla أو JD-GUI

وكلاهما تسمح لك لعرض جرة، والحرب، وما إلى ذلك. ملف المحتوى وdecompiles أي ملفات فئة داخل منهم.

وJarzilla: https://code.google.com/p/jarzilla/
JD-GUI: http://jd.benow.ca/

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