ما هي أدوات الرمز الثانوي CLR/.NET الموجودة؟[مغلق]

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

  •  02-07-2019
  •  | 
  •  

سؤال

أنا على دراية جيدة بأدوات Java لمعالجة وإنشاء وتفكيك كود JVM الثانوي (ASM وcglib وjad وما إلى ذلك).ما هي الأدوات المماثلة الموجودة للكود الثانوي CLR؟هل يقوم الأشخاص بمعالجة الكود الثانوي لـ CLR؟

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

المحلول

Bytecode هو تنسيق ثنائي.تعمل تجميعات .NET بشكل مختلف تمامًا من حيث كيفية تخزين تعليمات التنفيذ.

بدلاً من التحويل البرمجي إلى بنية تشبه الكود الثانوي، يتم تجميع لغات .NET إلى لغة متوسطة (في الواقع، يطلق عليها ذلك فقط - IL).

هذه لغة يمكن قراءتها من قبل الإنسان وتبدو وكأنها نسخة موجهة للكائنات من المجمّع.

لذلك، فيما يتعلق بفحص أو معالجة IL للتجميعات الفردية، تتيح لك أدوات مثل Reflector وILDASM عرض IL لأي تجميع بسهولة.

إن المعالجة مختلفة بعض الشيء، أقترح إلقاء نظرة على بعض أدوات AOP في مساحة .NET.أقترح أيضًا إلقاء نظرة على Phoenix، وهو مشروع مترجم يعمل عليه MS.إنه يحتوي على بعض ميزات معالجة ما بعد الترجمة الرائعة حقًا.

إذا كنت تريد معرفة المزيد عن أدوات .NET AOP، أقترح عليك فتح سؤال آخر (وهذا يمثل مجموعة أخرى كاملة من الفيروسات المتنقلة).

هناك أيضًا العديد من الكتب التي ستعلمك خصوصيات وعموميات IL.إنها ليست لغة معقدة للغاية للتعلم.

نصائح أخرى

يعد العاكس جيدًا دائمًا، ولكن Mono.Cecil هي أفضل أداة يمكنك طلبها بشكل عام.إنها لا تقدر بثمن لمعالجة CIL بأي شكل من الأشكال.

مونو. سيسيل هي أداة عظيمة مثل ASM.إنه مشروع فرعي لـ Mono، وهو مفتوح المصدر تمامًا.حتى أنه يوفر ميزة أفضل من System.Reflection.

إلداسم و العاكس تتبادر إلى الذهن.

نديبند يسمح لك بإجراء تحليل ثابت لتجميعات .NET (مقاييس الكود، وتحليل التبعية، وما إلى ذلك).يعد NDepend مفيدًا جدًا للحصول على نظرة عامة على بنية تجميعات .NET الخاصة بك باستخدام مصفوفة التبعية والرسوم البيانية التبعية ومقاييس المخطط الهيكلي تصورات.

كما أنه متكامل مع العاكس:على سبيل المثال، يمكنك اكتشاف الأنواع والطرق المهمة في تجميعاتك باستخدام النوع/الطريقة على التوالي مقياس الرتبة (مقياس كود مشابه لمقياس Google Page Rank)، وانتقل مباشرةً من NDepend إلى Reflector للحصول على الكود المفكك في C#، وVB.NET، وما إلى ذلك.

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