قارن برمجيا IL من طريقتين
-
02-10-2019 - |
سؤال
لدي تجميع تجميع. أريد أن برمجيا قارن طريقة تنفيذ إحدى الطرق في تلك التجميع بشيء أتوقعه.
هل هناك طريقة يمكنني مقارنة 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