当前位置:首页 » 编程软件 » net反编译

net反编译

发布时间: 2022-01-10 12:22:28

1. 如何反编译C#等net软件类库源代码

.Net 反编译软件,最着名的是 Reflector。但是最新版本收费现在打开Reflector的老版本要求强制更新到最新版本。所以,你一下在打开refector 会自动删除。那么大家可以使用 ILSpy。使用ILspy。

  • 1

    下载后的ILSPY 。

    打开EXE

  • 6

    毕竟.NET 和JAVA 属于中间语言,很好反编译。

2. 初入.net封装与反编译

还有就是封装以后怎么修改呢?。 你拿原来的.net 修改完在封装成Dll 的

3. .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 编写

4. c#中的反编译,谁能给详细讲讲

有个软件,好象叫reflector.

用Reflector for .NET反编译dll文件(.net) ( 发表时间:2006-9-16 15:21:52 ) 楼主
Reflector for .NET 下载地址http://www.aisto.com/roeder/dotnet/

1.下载Reflector.FileDisassembler.zip,
Reflector.FileDisassembler.zip下载地址:
http://www.denisbauer.com/NETTools/FileDisassembler.aspx
解压后得到一些文件,其中Reflector.FileDisassembler.dll是已经编译好的,其它是它源码;
2.打开Reflector,在view菜单下的Add-Ins,将Reflector.FileDisassembler.dll添加到里面;
3.open一个dll,exe,或mcl为后缀的文件,当然要支持.net的
4.选择要反编译的dll(会在列表中显示),选择Tools->File Disassembler,在右窗口会出现设置存放源码位置的路径,点击产生就可以了!

5. .net如何防反编译

.net是中间语言十分容易被反编译,通常都使用混淆作为一种加密手段。不过混淆不是真正防反编译,只不过反编译后代码难读懂而已,并且现在破解混淆的方式也比较多。所以真正要防反编译还是需要通过加密代码的方式。比如德国威步他们提供一种对.NET代码完全加密保护的方式来防止反编译的,曾经测试过用Reflector(.net反编译工具)反编译他们加密软件加密的.NET程序,的确完全无法看到源代码了。

6. 如何反编译.Net Reactor加密过的C#程序

.NET编译成IL,而不是机器码,加密工具大都是通过“模糊”来实现的,尽可能的合并函数为相同的无意义名称,变量名也改为无意义名称等,加大破解成本,使得反向工程成本大于重新开发成本。

所以,要求不能解密,估计是不行~

7. .net开发的exe安装文件可以反编译吗

可以,用reflector 及其它

用混淆器加密及数字签名,可挡掉大部分dll文件被人家反编译.但魔高一尺,道高一丈, 要做到完全加密是很难的.
有些Dotfuscator防反编译软件可以参考, 但那些功能强大的Dotfuscator都是商业软件,要花银子买.
总之,不管你加密的如何好,只是延长破解和反编译成可阅读代码的时间而以,所以不要放太多的精力在上面

8. NET 反编译能够完全还原整个工程吗

你在你的Solution中新建一个工程,然后把a.cs,b.cs,c.cs添加到这个工程里面(我建议你新建类,然后把类的代码Copy过去,这样即使命名空间不同也不会造成混乱)
然后再你引用的工程里AddReference->Project->你新建的这个工程,就可以调用了.
这样如果你需要修改的话直接在IDE里修改,可以实时看到效果

9. .NET下所有语言都可以轻松被反编译吗

JVM和CLR下面的所有语言都是先编译为字节码的,相对于传统的C++,容易被反编译容易被反编译的不仅仅是C#,还有Java,F#,VB.net,事实上,C#已经可以通过native编译直接生成机器码运行了(.net native技术)这样一定程度上可以提高反编译的难度

10. 如何解决.NET程序容易被反编译的问题

阻止不了,任何一个程序都可以被反编译 当然了,并不是说反编译以后就是源代码 不知道你用的什么语言,在.net里,一般都是用Dotfuscator之类的工具进行混淆干扰

.NET有一种加密字节码的方式是通过hook住JIT编译器的入口来做的:字节码经过加密/混淆存在文件里,等被CLR加载了,某个方法要执行而需要被JIT编译时,hook住JIT编译器的入口拦截住这个编译请求,然后去把对应的字节码解密之后再传给JIT编译器。
这种做法基本上只能唬唬小朋友,知道了原理之后很好解,可以轻松的获取解密后的字节码然后扔给常规的反编译器去处理。但现实的说,大部分用户在“试图解密”方面都是小朋友,所以倒也算是一种可行方案。

热点内容
单片机android 发布:2024-09-20 09:07:24 浏览:765
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:664
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:311
子弹算法 发布:2024-09-20 08:41:55 浏览:289
手机版网易我的世界服务器推荐 发布:2024-09-20 08:41:52 浏览:817
安卓x7怎么边打游戏边看视频 发布:2024-09-20 08:41:52 浏览:162
sql数据库安全 发布:2024-09-20 08:31:32 浏览:94
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:507
编程键是什么 发布:2024-09-20 07:52:47 浏览:658
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:481