反编译是我们理解.NET内部实现的一种良好的手段。
程序编译时
Test.exe是IL代码。我们可以通过一些工具,来查看这些IL代码。
一模一样?
理论上来说,一模一样的反编译是不存在的。原因有以下3点:
1. 注释不通过编译程序,自然木有注释。
2. .NET编译器会做一些优化,例如 int i= 5+6 ; 编译时直接表述成 i=11了、无用变量直接过滤。
(i=5+6这种方式写代码不是没有必要的,有些时候,例如文件操作中定义文件大小,我们经常为了可读性,写成(7*1024*1024*...) 的这种方式。)
3. .NET为了“Csharp Syntactic sugar”语法糖的概念,打造易用的平台,经常会在语法上做一些简化。这种简化只是在编写时简单一些,而编译时照旧是正常方式。
但是终归是能通过“蛛丝马迹”看出一些端倪。(是不是有反编译工具我们得代码就谁都能看了呢?放心,去搜搜代码混淆器吧。)
推荐几个反编译工具。
1.Reflector 老品牌,各方面表现 不错。唯一闹心的是,新版本已经收费了。
2.ILSpy 相对来说,各方面表现照 Reflector差那么一点, 但是是开源的项目。0元包邮哦亲。
下载地址:
1)Reflector
下载地址1:http://www.xiazaiba.com/html/5268.html
下载地址2:http://www.downxia.com/downinfo/35185.html
2)ILSpy
下载地址1:http://www.orsoon.com/Soft/14703.html
下载地址2:http://ilspy.net/