2010-09-14 7 views
4

J'ai un ensemble compilé. Je veux par programme comparer l'implémentation de méthode de l'une des méthodes dans cet assembly avec quelque chose que j'attends.Comparaison par programme IL de deux méthodes

Existe-t-il un moyen de comparer leurs IL? Même si je peux obtenir une représentation en tableau d'octets de n'importe quel jeu d'instructions, je serai dans un bon endroit.

Aide appréciée.

Répondre

0

vous pouvez utiliser ildasm.exe à partir d'une invite de commande studio visuel et faire quelque chose comme ildasm.exe dll nom

+0

Je voulais dire que je dois le faire par programme. –

+0

cet article peut aider alors - http://support.microsoft.com/kb/304655 – stack72

3

Vous pouvez vider les assemblages à l'aide ildasm et diff les deux versions comme celle-ci:

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

C'est gentil. Cependant, j'ai seulement besoin de comparer l'implémentation pour une seule méthode dans les deux assemblages. Il peut y avoir beaucoup de différences dans les deux assemblages. –

4

l'utilisation Mono.Cecil pourrait être un bon endroit pour commencer. Cecil est une bibliothèque utilisée pour lire et modifier les assemblages CLR, et fera tout l'analyse de fichiers pour vous, jusqu'à saisir le bytecode CIL.

Une autre bibliothèque potentiel que vous pourriez être en mesure d'utiliser est Boogie

+1

+1 pour Cecil. Cette bibliothèque est géniale. – Bobby

Questions connexes