以编程方式比较两种方法的 IL

发布于 2024-09-19 12:04:13 字数 127 浏览 5 评论 0原文

我有一个已编译的程序集。我想以编程方式将该程序集中的方法之一的方法实现与我期望的方法进行比较。

有没有办法可以比较他们的 IL?即使我可以获得任何指令集的字节数组表示,我也会处于一个好的位置。

帮助表示赞赏。

I have a compiled assembly. I want to programmatically compare the method implementation of one of the methods in that assembly with something I expect.

Is there a way I can compare their ILs? Even if I can get a byte array representation of any instruction set, I'll be in a good place.

Help appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

谎言 2024-09-26 12:04:13

您可以尝试使用反射并使用字节数组比较 IL。

看看这个方法: http://msdn .microsoft.com/en-us/library/system.reflection.methodbody.getilasbytearray.aspx

You could try using Reflection and compare the IL using byte arrays.

Take a look at this method: http://msdn.microsoft.com/en-us/library/system.reflection.methodbody.getilasbytearray.aspx

墨小墨 2024-09-26 12:04:13

使用 Mono.Cecil 可能是一个不错的起点。 Cecil 是一个用于读取和修改 CLR 程序集的库,它将为您完成所有文件解析,直至获取 CIL 字节码。

您可能可以使用的另一个潜在库是 Boogie

Using Mono.Cecil might be a good place to start. Cecil is a library used to read and modify CLR assemblies, and will do all the file parsing for you as far as grabbing the CIL bytecode.

Another potential library you might be able to use is Boogie

赤濁 2024-09-26 12:04:13

您可以使用 ildasm 转储程序集并比较两个版本,如下所示:

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

You can dump the assemblies using ildasm and diff the two versions like this:

ildasm /ALL /TEXT assembly1.dll > dump1.txt
ildasm /ALL /TEXT assembly2.dll > dump2.txt
fc dump1.txt dump2.txt       
忘东忘西忘不掉你 2024-09-26 12:04:13

您可以从 Visual Studio 命令提示符中使用 ildasm.exe 并执行类似 ildasm.exe dll name 的操作

you can use ildasm.exe from a visual studio command prompt and do something like ildasm.exe dll name

在风中等你 2024-09-26 12:04:13

您可以使用 ildasmreflector 从程序集中提取 IL

You can use ildasm or reflector to extract IL from assembly

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文