سؤال

هل هناك فائدة مشابهة لـ Ollydbg / softice لـ Java؟ IE تنفيذ الفئة (من جرة / مع مسار الفئة) ، وبدون رمز المصدر ، أظهر تفكيك الرمز الوسيط مع القدرة على التنقل من خلال / البحث عن / البحث عن المراجع / تحرير التعليمات البرمجية الوسيطة المحددة في الذاكرة / تطبيق التحرير إلى ملف .. .

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

تحرير: أنا لا أتحدث عن Jad أو JD أو Cavaj. هذه أدوات فكية جيدة ، لكنني لا أريد إلغاء إطفاء لعدة أسباب ، وأبرزها أن ناتجها غير صحيح (في أحسن الأحوال ، في بعض الأحيان مجرد خطأ واضح). أنا لا أبحث عن "بايت مجمع إلى كود جافا" - أريد أن أرى البايتات الفعلية التي على وشك تنفيذها. أيضًا ، أود أن تكون القدرة على تغيير تلك البايتات (كما هو الحال في مصحح تصحيح التجميع) ، ونأمل أن تكتب الجزء الذي تم تغييره إلى ملف الفصل.

EDIT2: أعرف أن Javap موجود - لكنه لا يفعل سوى طريقة واحدة (وبدون أي نوع من التحليل). مثال (رمز مأخوذ من وثائق VMSPEC): من كود Java ، نستخدم "Javac" لتجميع هذا:

void setIt(int value) {
    i = value;
}
int getIt() {
    return i;
}

إلى ملف Java .class. باستخدام Javap -C يمكنني الحصول على هذا الإخراج:

    Method void setIt(int)
   0    aload_0
   1    iload_1
   2    putfield #4
   5    return
    Method int getIt()
   0    aload_0
   1    getfield #4
   4    ireturn

هذا جيد بالنسبة للجزء التفكيك (ليس جيدًا حقًا بدون تحليل - "الحقل رقم 4 هو مثال

  1. تصحيح الأخطاء التي تتخطى التعليمات نفسها (مع المكدس ، مقالب الذاكرة ، إلخ) ، مما يسمح لي بفحص الكود والبيئة الفعلية.
  2. طريقة لعكس العملية - قم بتحرير الكود المفوض وإعادة إنشاء ملف .class (مع الكود المعدل).
هل كانت مفيدة؟

المحلول

حاول استخدام scriptlink giveacodicetagpre.

أو giveacodicetagpre.

عنصر تحكم ScriptLink يضمن تحميل البرنامج النصي مرة واحدة فقط و سوف يضمن أيضا تحميل التبعيات الأخرى أولا

نصائح أخرى

ألق نظرة على جاد ديكومبيليير لإلغاء تجميع كود جافا. يمكنك بعد ذلك تشغيل تصحيح أخطاء مدمج IDE باستخدام مصادر منتجة. IDE يمكن أن يكون intellij ، الكسوف أو netbeans. هذا النهج ليس تلقائيًا تمامًا ، ولكن يجب أن يقوم بالمهمة.

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