使用.NET Reflector(转)
l .NET Reflector是一个类浏览器和反编译器,利用反射机制来分析程序集,以展示程序集中各种类型及其成员的信息。
l 下载.NET Reflector:http://www.aisto.com/roeder/dotnet
l 通过菜单File->Open加载要分析的程序集,在左边的树型浏览器中可以看到该程序集包含的名字空间、类型(类、接口、枚举等)及成员(方法、属性、域等)。你可以通过菜单Tools->Disassembler来查看名字空间、类型和成员的相关信息(如下图)。
l .NET Reflector默认使用C#的形式来展示名字空间、类型和成员的信息,你可以通过工具栏上的语言选择框,以不同的形式来展示名字空间、类型和成员的信息(如下图)。
l .NET Reflector的一个好处是提供Add-Ins扩展来增强功能。例如.NET Reflector默认不支持以MC++的形式展示信息,这可以使用扩展的Add-Ins使得.NET Reflector具有该功能。你可以通过菜单View->Add-Ins来追加和移除Add-Ins。
l 你可以从下面的地址找到一个.NET Reflector Add-Ins的列表:http://www.aisto.com/Incoming/Reflector/AddIns/。
最近经常上网,去下载一些网上的一些asp.net程序,但是由于里面很多虽说有源代码,但是却不包含.cs,.vb等代码,只有那些.aspx,ascx等页面。于是就想看看它们的.cs,.vb代码如何,于是就用了这个Reflector工具.感觉很不错。(有点感叹,简直太好了,只要里面有是.net编译而来的dll文件就可以看里面的代码。)下面我就简要介绍一下它的用法和感受。
先从File->Open来打开,你所下的asp.net项目下的bin目录的dll文件。这时Reflector的左边的listview就能看到所打开的dll文件。展开这个dll文件名的节点,下面会显示两个节点分别是:名称.dll和Resouse文件.展开名称.dll文件,可以看到dll里面的各个命名空间,选定一个命名空间点右键弹出菜单里有Disassemble,在右方就可以看到这个命名空间里面的包含的类里面// Methods(方法),// Properties(属性),// Fields(静态方法)。依次展开从父节点到子节点分别顺序如下:命名空间->类->方法或属性,然后选定某个类名或方法,选定右键Disassemble就可以看到类名所包含的方法或方法里的代码。
支持显示IL,C#,vb,Delphi,Mc++,chrome等语言,右上方可以选择不同的语言显示。默认是C#.
当然它除了可以反编译dll,也可以反编译.net生成的exe文件。操作如上,在此就不多说了。
另外,它还可以支持反编译显示dll文件里的文档等。各位可以试一试。
不过现在不支持中文,而且有些代码如果通过加密也可能不能显示或显示错误。这个工具对开发者来说确实可以有很大的帮助。大家有空可以用用。互相学习才会不断进步啊。
posted on 2009-01-23 17:01 Zihuatanejo 阅读(2199) 评论(0) 收藏 举报
浙公网安备 33010602011771号