Reflector如何反编译代码?

Wat*_* v2 1 .net il reflector cil reflection.emit

Red Gate Ant Profiler或Reflector等工具如何将IL转换为C#或VB.NET代码?

我最近注意到Red Gate Ant Profiler不生成与最初编写的源代码相同的源代码.

它产生了一个while我用过的循环foreach.

这让我想到了.我在Reflector中打开了Reflector.exe,但是他们的代码大多数(并非全部)都是混淆的.

小智 7

一般来说,反编译器通过查看IL并构造在语义上等同于IL的源代码来工作.这不能总是产生orignal源代码,因为IL丢弃了一些高级信息(尽管没有机器代码那么多),并且因为通常会有几段代码编译到同一个IL.例如,foreach循环等效于某种while循环(首先设置枚举器,然后循环直到枚举器耗尽,并在每一步推进枚举器).