A. 如何反编译或者修改一个.net程序
既然这样的话,你可以使用反射,将别人的程序集加载到自己的程序里面,然后在自己的程序调用他的代码,用反射的好处是,你可以调用所有的私有函数,甚至可以调用函数名被混淆的函数。
B. .net如何防反编译
.net是中间语言十分容易被反编译,通常都使用混淆作为一种加密手段。不过混淆不是真正防反编译,只不过反编译后代码难读懂而已,并且现在破解混淆的方式也比较多。所以真正要防反编译还是需要通过加密代码的方式。比如德国威步他们提供一种对.NET代码完全加密保护的方式来防止反编译的,曾经测试过用Reflector(.net反编译工具)反编译他们加密软件加密的.NET程序,的确完全无法看到源代码了。
C. Reflector(.Net的Dll反编译工具)
Reflector( Net的Dll反编译工具)下载介绍:Reflector是一款比较强大的反编译工具 相信很多朋友都用过它 但reflector本身有很多局限性 比如只能一个一个的查看方法等 但幸好reflector支持插件功能目前网上有很多reflector的插件 本人找取了两个应用范围很广 并且广受好评的插件:Reflector FileDisassembler和Reflector FileGenerator和Reflector进行了整合 放在了一个压缩包中 大家可以直接解压缩后就开始使用 其中FileGenerator在网上没有现成dll 本人编译后将其取出 放在了压缩包中 一直在苦苦找寻的朋友这次可以拿来直接用了:)
本压缩包中Reflector exe已经升级为最新的 版本 具体的使用方法不多说了 只简单介绍一下本压缩包的使用步骤: 先下载本压缩包并解压缩 运行其中的Reflector exe(主程序) 初次运行会弹出错误提示对话框 因为引用的两个插件DLL是按照我本地实际情况配置的 所以你还需要根据你的实际情况来从新配置一下 方法很简单 我们拿引用FileGenerator dll来做一个范例 首先介绍一下Filegenerator FileGenerator插件的作用是 根据dll文件 把里面的源文件导出成文件 导出来的文件除了没有注释 变量名也变了 其它的可谓是没有差别 对于一些比较好的控件 如果不是开源的 完全可以导出成文件 然后自己加上注释 少许修改 很好的利用起来 (不开源的dll 用起来也不放心啊) 具体的初始化设置方法:点击View >Add Ins 弹出一个窗口 然后点击Add >选择文件夹里面此运的 FileGenerator dll 点击close 然后回到Reflector窗口 Tool >Generator File(s) 右边就出现了插件的窗口 选中左边的dll文件 点击右边的导出文件 源代码就全部导出来了! 另一个插件Reflector FileDisassembler dll设含扒衫置方法也和这个一样 另外再提供一些Reflector的相关插件下载 可以用来反汇编 Net 的Dll文件 站长刚刚就用这个小软件把动易 Net 的Dll文件全汇编谈腔过来了
lishixin/Article/program/net/201311/12056
D. 请问怎样将.Net程序反编译为一个VS工程,可以正常运行调试
vs编写程序是以项目为单位的(对小程序很不适合)。第一步是建里一个项目第二部是添加源代码文件(.cpp)和头文件(.h)在打开的空白文档写代码按F5或者点击面板上的启动本地调试器添加源代码文件的方法可以按快捷键也可以用下面的方法:在屏幕的左侧或者右侧有一个解决方案管理器,右点源文件-》添加-》新建项-》.cpp文件-》输入文件名-》确定。
E. 如何反编译C#等net软件类库源代码
.Net 反编译软件,最着名的是 Reflector。但是最新版本收费现在打开Reflector的老版本要求强制更新到最新版本。所以,你一下在打开refector 会自动删除。那么大家可以使用 ILSpy。使用ILspy。
1
下载后的ILSPY 。
打开EXE
6
毕竟.NET 和JAVA 属于中间语言,很好反编译。
F. .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 编写
G. 如何利用ILSPY反编译工具重建C#NETWeb源码解决方案
无论是VB.NET还是C#.NET语言开发的APS.NETWEB程序,发布在IIS的虚拟目录下时,基本上会是三种文件类型(以C#为例):
1,aspx 页面文件
2,.aspx.cs 页面文件对应的代码文件
3,Bin或Assembly 目录下的.DLL类库文件。
出于代码的保密性或代码源码的管理需要,项目团队开发时,会经常性的将一部分与数据库打交道的代码封装到中间层,即.DLL层进行统一管理维护,这一部分.DLL是以文件的形式供调用,不象.aspx.cs文件可以直接用记事本打开进行查看源码,给我们重新建解方案带来了一定的困难。但只要能通过ILSPY对这部分.DLL代码进行反编译的话,可以很方便,也是很快的重新你的完整解决方案。(此方法也同样适用于.NET开发的.exe文件)下面是是一些具体的反编译与重建解决方案的步骤:
1,搜索并下载.NET 反编译工具IL SPY 。
2,下载后,打开IL SPY的执行文件ILSpy.exe
接下来,需要的就是按步就搬的建立你的.sln方案,在.NET开发环境下添加反编译出来的.csproj项目,并将原来web发布目录下的文件加入解决方案中
6,重新解决方案的时间由系统的大小及对.NET开发环境的精通程度决定,一般该引用的引用,该反编译的反编译.