❶ VS 中如何把编译好的ASP.NET网站 反编译啊
如果是通过普通发布的话,
在aspx页面page指令中有一个属性inherits 他就是说他相对应的cs文件,生成了DLL的名字,不过都是随机命名的。找到后可以用.NET Reflector 反编译下,
如果是用WebDeploymentSetup插件发布的话, 就只有一个程序集了,那更好办了
❷ 如何反编译NET的dll文件
在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。DLL文件一般被存放在C:\Windows\System目录下。 1、如何了解某应用程序使用哪些DLL文件 右键单击该应用程序并选择快捷菜单中的“快速查看”命令,在随后出现的“快速查看”窗口的“引入表”一栏中你将看到其使用DLL文件的情况。 2、如何知道DLL文件被几个程序使用 运行Regedit,进入HKEY_LOCAL_MACHINE\Software\Microsrft\Windows\Current-Version\SharedDlls子键查看,其右边窗口中就显示了所有DLL文件及其相关数据,其中数据右边小括号内的数字就说明了被几个程序使用,(2)表示被两个程序使用,(0)则表示无程序使用,可以将其删除。 3、如何解决DLL文件丢失的情况 有时在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。一旦出现了丢失DLL文件的情况,如果你能确定其名称,可以在Sysbckup(系统备份文件夹)中找到该DLL文件,将其复制到System文件夹中。如果这样不行,在电脑启动时又总是出现“***dll文件丢失……”的提示框,你可以在“开始/运行”中运行Msconfig,进入系统配置实用程序对话框以后,单击选择“System.ini”标签,找出提示丢失的DLL文件,使其不被选中,这样开机时就不会出现错误提示了。反编译修改dll文件后重新.net重新生成dll文件更多
❸ 如何反编译ASP.net网站打包后的dll,然后整合生成的cs文件
你用什么反编译?如果是Reflector或ILSpy,应该会创建一个Csproj文件,用VisualStudio可以打开这个项目,然后编译就ok了
❹ c# MSDN里的那些类可以找到源码吗
windows 7,windows 8都已预装有.net framework,如果你用的是windows是不会觉得麻烦的。MSDN有大量的代码。如果要看.net framework的源码,把.net framework反编译就看到了。.net framework的源码是学习C#最好教程了!
❺ ASP.NET如何把dll文件反编译成.aspx.cs文件
你在你的Solution中新建一个工程,然后把a.cs,b.cs,c.cs添加到这个工程里面(我建议你新建类,然后把类的代码Copy过去,这样即使命名空间不同也不会造成混乱)
然后再你引用的工程里AddReference->Project->你新建的这个工程,就可以调用了.
这样如果你需要修改的话直接在IDE里修改,可以实时看到效果
❻ .net网页发布后进行反编译
.Net有两个很好的工具可以反编译.NET程序集:Salamander .Net Decomplier和Reflector.Net ,Salamander .Net Decomplier功能非常强大,可以反编译混淆过的.NE代码,也可以直接将程序集中的类反编译成一个文件,但是它是需要money的,试用版提供的功能又非常有限。相对而言呢,Reflector.net 是完全免费的,但是它只能一个方法一个方法的查看,不能将程序集直接反编译成一个文件,这样也比较麻烦,好就好在它支持插件add-in功能。针对它的缺点,很多人开发了很好用的插件,可以将整个程序集的代码反编译成源文件,比如说Reflector.FileDisassembler 、Reflector.FileGenerator 都是很好用的。
另外再提供一些Reflector的相关插件下载,enjoy!!!!
插件FileGenerator 使用方法:
最开始下载了FileGenerator插件不知如何使用,后来经过摸索,还是学会使用了,所以拿来和大家分享。
FileGenerator插件的作用是:根据dll文件,把里面的源文件导出成文件,导出来的文件除了没有注释,变量名也变了,其它的可谓是没有 差别。对于一些比较好的控件,如果不是开源的,完全可以导出成文件,然后自己加上注释,少许修改,很好的利用起来。(不开源的dll,用起来也不放心啊)
先根据上面的地址下载FileGenerator并解压缩,然后运行Reflector.exe,然后点击View->Add- Ins...,弹出一个窗口,然后点击Add->选择FileGenerator里面的唯一一个dll文件: "FileGenerator.dll",点击close.
然后回到Reflector窗口,Tool->Generator File(s)... 右边就出现了插件的窗口,选中左边的dll文件,点击右边的导出文件,源代码就全部导出来了,真是爽啊!
使用.NET Reflector插件FileDisassembler还原源码
.NET Reflector,它是一个类浏览器和反编译器,可以分析程序集并向您展示它的所有秘密。.NET 框架向全世界引入了可用来分析任何基于 .NET 的代码(无论它是单个类还是完整的程序集)的反射概念。反射还可以用来检索有关特定程序集中包含的各种类、方法和属性的信息。使用 .NET Reflector,您可以浏览程序集的类和方法,可以分析由这些类和方法生成的 Microsoft 中间语言 (MSIL),并且可以反编译这些类和方法并查看 C# 或 Visual Basic ?.NET 中的等价类和方法。
为了演示 .NET Reflector 的工作方式,我将加载和分析前面已经显示的 NUnitExample 程序集。下图显示了 .NET Reflector 中加载的该程序集。
在 .NET Reflector 内部,有各种可用来进一步分析该程序集的工具。要查看构成某个方法的 MSIL,请单击该方法并从菜单中选择 Disassembler。
除了能够查看 MSIL 以外,您还可以通过选择 Tools 菜单下的 Decompiler 来查看该方法的 C# 形式。通过在 Languages 菜单下更改您的选择,您还可以查看该方法被反编译到 Visual Basic .NET 或 Delphi 以后的形式。以下为 .NET Reflector 生成的代码:
public void HashtableAddTest(){
Hashtable hashtable1;
hashtable1 = new Hashtable();
hashtable1.Add("Key1", "value1");
hashtable1.Add("Key2", "value2");
Assert.AreEqual("value1", hashtable1["Key1"], "Wrong object returned!");
Assert.AreEqual("value2", hashtable1["Key2"], "Wrong object returned!");
}
前面的代码看起来非常像我为该方法实际编写的代码。以下为该程序集中的实际代码:
public void HashtableAddTest(){
Hashtable ht = new Hashtable();
ht.Add("Key1", "value1");
ht.Add("Key2", "value2");
Assert.AreEqual("value1", ht["Key1"], "Wrong object returned!");
Assert.AreEqual("value2", ht["Key2"], "Wrong object returned!");
}
尽管上述代码中存在一些小的差异,但它们在功能上是完全相同的。
虽然该示例是一种显示实际代码与反编译代码之间对比的好方法,但在我看来,它并不代表 .NET Reflector 所具有的最佳用途 — 分析 .NET 框架程序集和方法。.NET 框架提供了许多执行类似操作的不同方法。例如,如果您需要从 XML 中读取一组数据,则存在多种使用 XmlDocument、XPathNavigator 或 XmlReader 完成该工作的不同方法。通过使用 .NET Reflector,您可以查看 Microsoft 在编写数据集的 ReadXml 方法时使用了什么,或者查看他们在从配置文件读取数据时做了哪些工作。.NET Reflector 还是一个了解以下最佳实施策略的优秀方法:创建诸如 HttpHandlers 或配置处理程序之类的对象,因为您可以了解到 Microsoft 工作组实际上是如何在框架中生成这些对象的。
.NET Reflector 由 Lutz Roeder 编写
❼ 如何反编译ASP.NET发布后的网站文件
事实上,不管你用Reflector或ILSpy都不能完全的将dll反编译成和编译前一模一样的。这些反编译工具由助于你了解人家dll的内部结构,但不能说拿别人编译后的项目,你然后反编译一下dll就可以继续二次开发了。你要知道反编译工具都是第三方写的,不是微软官方的,反编译工具是根据一些既有规则试图将dll内部的结构猜出来,当然这里用猜也不恰当,但你可以这么理解。所以对于复杂的dll,反编译工具并不能完全彻底的编译他们。这些工具有助我们学习人家的代码,但绝对不是让你盗版人家的,他们也没这个能力。
❽ .net如何防反编译
.net是中间语言十分容易被反编译,通常都使用混淆作为一种加密手段。不过混淆不是真正防反编译,只不过反编译后代码难读懂而已,并且现在破解混淆的方式也比较多。所以真正要防反编译还是需要通过加密代码的方式。比如德国威步他们提供一种对.NET代码完全加密保护的方式来防止反编译的,曾经测试过用Reflector(.net反编译工具)反编译他们加密软件加密的.NET程序,的确完全无法看到源代码了。
❾ 如何反编译.Net Reactor加密过的C#程序
.NET编译成IL,而不是机器码,加密工具大都是通过“模糊”来实现的,尽可能的合并函数为相同的无意义名称,变量名也改为无意义名称等,加大破解成本,使得反向工程成本大于重新开发成本。
所以,要求不能解密,估计是不行~