前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

使用.NET JustDecompile来反编译你的程序代码 - 编程大巴 - 次元立方网 - 电脑知识与技术互动交流平台 次元立方网 下载 专家堂 IT资讯 编程 数据库 安全 设计 网页 系统 服务器 组网 嵌入式 基础 QQ RSS 编程大巴 开发资讯 开发文档 文档推荐 资源下载 在线手册 首页 > 编程大巴 > 编程语言 > C#/.NET > 正文 编程大巴 http://www.it165.net/pro 使用.NET JustDecompile来反编译你的程序代码 作者:.Net 蛤什麼? 发布日期:2013-10-07 19:12:54 我来说两句(0) 0 Tag标签:.NET JustDecompile 反编译 前言   在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL 档案。   首先大概介绍一下 DLL 是什么,DLL 全名是 Dynamic Linking Library (动态链接库),当你使用 .NET 开发应用程序时,使用的是网站项目或类别库时,当项目建置完成后即会在项目底下的 Bin 数据夹中产生将你所撰写项目中所有的 Class 档案编译成 DLL 档案,而如果开发的是共享工具类别库,就能够将此 DLL 档案提供给多个应用程序与网站参考使用。   但 DLL 档案是编译过后的档案,一般情况下是无法得知内部撰写的程序代码,所以在此就必须要使用反编译的工具来协助去窥探 DLL 内的原始码,在此要注意一点,DLL 档案是可以被反编译的,所以不要以为将程序写成 DLL 档案后别人就无法可以得知内容,但如果真的要隐藏 DLL 的内容,可以透过混淆 DLL 的方式来将 DLL 档案内的程序代码搞得乱七八糟,增加被反编译后阅读的困难度。 建立一个类别库   在反编译 DLL 之前我们先建立一个类别库来供之后反编译使用,开启 VS 建立一个类别库项目,如下 接着建立一个 SalaryHelper 的 Class 档案用来计算薪资金额,如下 而 SalaryHelper Class 的内容就简单的撰写一个方法并回传薪资金额,如下 namespace Tools { public class SalaryHelper { public decimal GetMySalary() { return 22000; } } } 最后在建立一个 ConsoleApplication 将 Tools 类别库加入参考,并且呼叫 GetMySalary() 方法取得薪资,如下 namespace ConsoleApp { class Program { static void Main(string[] args) { Tools.SalaryHelper helper = new Tools.SalaryHelper(); Console.WriteLine( string.Format("My Salary is {0}", helper.GetMySalary().ToString())); Console.Read(); } } } 执行结果如下 使用 IL 反组译工具   在安装 Visual Studio 时通常会一并安装 Windows SDK Tools,在 Windows SDK Tools 中有一个 IL 反组译工具可以将 DLL 档案反编译成中间语言,如下   透过 IL反组译工具 将 DLL 反编译成中间语言后就能够与原始码进行对应,不过此中间语言实在非常不亲切,所以我们将改使用其它的工具来进行反编译动作。   用来反编译的工具中比较常听到的就是 Redgate .NET Reflector 与 Telerik .NET Decompiler 此两款工具,.NET Reflector 此工具是需要收费的工具,但是功能还蛮强大的,如果有经常频繁深入的使用时建议可以购买此款工具,而 .NET Decompiler 则是免费的反编译工具,功能虽没 .NET Reflector 强大,但是是免费的先够用就好啦,以下就用此工具来进行示范。 使用 Telerik .NET Decompiler 工具反编译程序代码   首先进入下载网址点选 Free Download 下载安装档案 下载完成后就可以进行安装,下一步下一步....的点到完成 安装完成后到 「开始」→「所有程序」→「Telerik」找到 Telerik JustDecompile 程序执行,如下 开启 JustDecompile 程序后,点选上方工具列的 「Open...」→「File(s)...」寻找到我们建立的 Tools DLL 档案开启 开启后展开的树状目录如下,并且在 Tools 命名空间中找到我们撰写的 SalaryHelper Class 选择到 SalaryHelper 后,右边的分隔窗口就会显示该类别反编译后的程序代码,如下 反编译的程序代码 原始的程序代码 透过 .NET Decompiler 工具将 DLL 档案反编译后,是不是发现两着的相似度很高且非常亲切呢 :P,另外此工具也能够将反编译的程序代码转换为其它语言的代码,在上方的工具列上可以看到一个 C# 的下拉选单,点击后可选择 C#、VB、IL 语言 若你是撰写 VB 语言的,可以将 C# 改成 Visual Basic ,修改后反编译的代码就会变成 Visual Basic 语言的程序代码,是不是很方便呢。 使用此工具还有还有还有一个很重要的功用是可以去看 .NET Framework 实作的类别库!如果是在 Open 的时候选择的是 Load Framework 就可以选择已安装的 .NET Framework 开启来阅读,如下 如此就能够看到 .NET Framework 类别库中底层去实作功能的做法,以上就是一个简单使用的方法,供各位有需要的人作为参考啦。 延伸阅读: 1、.NET简谈组件程序设计之(渗入序列化过程) 2、c# asp.net 返回通用List类型 3、Asp.net 连接Excel文件 4、ASP.NET MVC中的ActionResult 5、.Net 线程处理系列一:线程基础 6、.Net线程处理系列二:线程池中的工作者线程 7、在.NET程序中如何指定Windows的ClassName去接收窗口的讯息 8、.NET Runtime 2.0 Error Reporting ID:5000例外错误处理 返回到首页 返回到编程大巴 Win32 OpenGL ASP.NET MVC cocos2d-x WCF Linq Android QT MFC JQuery 使用.NET JustDecompile来反编 前言  在项目的进行中有时会碰到需要去了解由第三方... 详细 快快乐乐学LINQ系列OrderBy(), ThenBy()简介 VisualStudio编译档案的小技巧 Xamarin通过Native Code呼叫JavaScript fu Windows Phone开发 Tilt Effect 今日排行 周排行 月排行 .net多线程陷阱 Service BroadcastReceiver Activity... Thread善用SpinWait处理 执行绪空转 ... CSharp(C#):var与dynamic C#将汉字转换为拼音(按照拼音搜索) Thread执行循环的互锁与死锁 C#构造函数调用其他构造函数 在C#调用C++的DLL简析(二) 生成托管DLL C# WinForm DataGridView简易分页范例 C#删除指定文件到回收站中 System.Drawing.Bitmap要如何转换成WPF... C#中TransactionScope的使用方法和原理 WPF MVVM RadioButton Binding 在C#调用C++的DLL简析(二) 生成托管DLL C#引用C++ Dll 所有类型转换的方式 C#导出PowerPoint文件为图片文档 C#用户权限控制架构(可控制类) CSharp(C#):var与dynamic GSM短信猫接口程序 在HubTile上套用TiltEffect倾斜效果 System.Drawing.Bitmap要如何转换成WPF... NoSQL使用C#操控MongoDB (查询资料篇) WPF MVVM RadioButton Binding ReportViewer下的RDLC(二) 大量数据导出Excel 之 多重影分身之术 通过Soap Extension进行讯息的加/解密... 一步步教你制作WPF圆形玻璃按钮 C#环境中的事务Transaction示例 Thread善用SpinWait处理 执行绪空转 ... 使用MFT Scanner遍历USN Journal,快速... 最新文章 使用.NET JustDecompile来反编译你的程... ASP.NET WebAPI Return Request Result .NET重构之单元测试重构 servlet ajax samples servlet ajax sample json版 一个例子探究jQuery的Ajax应用(二) 一个例子探究jQuery的Ajax应用(一) JSP页面结构和Scriptlet Element介绍 用Linqpad协助建立OData语法 Lucene.Net如何与DB合作 专家推荐 无韵之歌:软件工程师 QT编程利用QTreeWidget显示无限分类 OneCoder:软件开发工程师 一个基本的Java项目 汪宇杰:软件开发工程师 如何更改Visual Studio中TFS Server的URL地址 热门专题 李华明iOS-Cocos2d游戏开发 本教程为 李华明 编著的iOS-Cocos2d游戏开发系列教程:教程涵盖关于i...... 详细 Directx11 游戏编程入门教程 专题主要学习DirectX的初级编程入门学习,对Directx11的入门及初学者有...... 详细 Javascript 面向对象编程 "面向对象的JavaScript"这一说法多少有些冗余,因为JavaScript 语言本...... 详细 谷歌在美搜索市场有所下滑 北京时间4月12日凌晨消息,市场研究公司comScore周...... 详细 腾讯QQ遭黑客攻击 受损用户资料被修改且维权难 视频行业洗牌 优酷土豆合并发展 Win8系统难以出身 或将逼迫Windows9现身 iPad商标纠纷案 苹果唯冠或将和解 黑客攻破联合国网站 窃取部分内部资料 淘宝网遭走私团伙利用 成走私电脑销售渠道 About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式 本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规