سؤال

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

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

المساعدة في تقدير.

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

المحلول

يمكنك محاولة استخدام التفكير ومقارنة IL باستخدام صفائف البايت.

ألق نظرة على هذه الطريقة: http://msdn.microsoft.com/en-us/library/system.reflection.methodbody.getilasbytearray.aspx

نصائح أخرى

استخدام mono.cecil قد يكون مكانًا جيدًا للبدء. CECIL هي مكتبة تستخدم لقراءة وتعديل تجميعات CLR ، وسوف تقوم بجميع الملفات الخاصة بك بقدر الاستيلاء على رمز CIL.

مكتبة محتملة أخرى قد تتمكن من استخدامها الرقصة

يمكنك تفريغ التجميعات باستخدام ildasm و diff نسختين مثل هذا:

ildasm /ALL /TEXT assembly1.dll > dump1.txt
ildasm /ALL /TEXT assembly2.dll > dump2.txt
fc dump1.txt dump2.txt       

يمكنك استخدام ildasm.exe من موجه أوامر Visual Studio والقيام بشيء مثل ildasm.exe dll name

يمكنك استخدام ildasm أو العاكس لاستخراج IL من التجميع

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