反编译工具 使用.NET JustDecompile来反编译你的程序代码

原文地址:http://www.it165.net/pro/html/201310/7383.html

    • 前言

        在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL 档案。

        首先大概介绍一下 DLL 是什么,DLL 全名是 Dynamic Linking Library (动态链接库),当你使用 .NET 开发应用程序时,使用的是网站项目或类别库时,当项目建置完成后即会在项目底下的 Bin 数据夹中产生将你所撰写项目中所有的 Class 档案编译成 DLL 档案,而如果开发的是共享工具类别库,就能够将此 DLL 档案提供给多个应用程序与网站参考使用。

        但 DLL 档案是编译过后的档案,一般情况下是无法得知内部撰写的程序代码,所以在此就必须要使用反编译的工具来协助去窥探 DLL 内的原始码,在此要注意一点,DLL 档案是可以被反编译的,所以不要以为将程序写成 DLL 档案后别人就无法可以得知内容,但如果真的要隐藏 DLL 的内容,可以透过混淆 DLL 的方式来将 DLL 档案内的程序代码搞得乱七八糟,增加被反编译后阅读的困难度。

      建立一个类别库

        在反编译 DLL 之前我们先建立一个类别库来供之后反编译使用,开启 VS 建立一个类别库项目,如下

      接着建立一个 SalaryHelper 的 Class 档案用来计算薪资金额,如下

      而 SalaryHelper Class 的内容就简单的撰写一个方法并回传薪资金额,如下

      view sourceprint?

      01.namespace Tools

      02.{

      03.public class SalaryHelper

      04.{

      05.public decimal GetMySalary()

      06.{

      07.return 22000;

      08.}

      09.}

      10.}

      最后在建立一个 ConsoleApplication 将 Tools 类别库加入参考,并且呼叫 GetMySalary() 方法取得薪资,如下

      view sourceprint?

      01.namespace ConsoleApp

      02.{

      03.class Program

      04.{

      05.static void Main(string[] args)

      06.{

      07.Tools.SalaryHelper helper = new Tools.SalaryHelper();

      08.Console.WriteLine(

      09.string.Format("My Salary is {0}", helper.GetMySalary().ToString()));

      10.Console.Read();

      11.}

      12.}

      13.}

      执行结果如下

      使用 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 类别库中底层去实作功能的做法,以上就是一个简单使用的方法,供各位有需要的人作为参考啦。

时间: 2024-07-30 10:18:44

反编译工具 使用.NET JustDecompile来反编译你的程序代码的相关文章

ARM 编译工具keil 和 IAR 命令行编译和下载

目的 不管是Keil还是IAR对代码补全,高亮等编辑功能支持的不是很好,虽然现在的Keil 5.25对界面的支持好了很多,但是很多人还是青睐于第三方的编辑器,命令行的编译方式可以让我们在使用第三方编辑器编辑的时候进行代码编译和下载,通常我们比较喜欢的编辑器有下面一些,不是很全. _____________________________________ 常用的第三方编辑器介绍 Visual Studio 2010 - 2017 Windows 下面的VS工具配上番茄助手写代码爽的不得了,并且现在

python反编译工具

开发类在线工具:https://tool.lu/一个反编译网站:https://tool.lu/pyc/ 一看这个标题,就是搞坏事用的, 用 java 写程序多了,很习惯用反编译工具了,而且玩java 的人认为那是很正常的事.所以很多商业应用的java 程序都用了混淆器或者自己写了classloader,防止别人反编译,其实理论上还是可以反编译的,只是难度加大了.我用python,django 两年多了,虽然都是业余时间再玩,自己也写过一些应用,有时候想如果某些核心的代码不公开能反编译吗,肯定是

(转).net反编译工具JustDecompile

开源的反编译工具  JustDecompile https://www.telerik.com/blogs/justdecompile-engine-becomes-open-source https://www.cnblogs.com/shanyou/p/4491124.html JustDecompile是Telerik公司推出一个免费的.net反编译工具,支持插件,与Visual Studio 集成,能够创建Visual Studio project文件.JustDecompile与Ref

几个比较实用的.Net 反编译工具

1. Visual Studio 自带的IL DASM Visual Studio 的Tools中可以找到IL DASM,通过File-Open打开一个你想反编译的dll 单击方法名,则会跳出该方法的IL代码,如下图: 2. ILSpy: 对dll反编译后支持C#.VB和IL的显示 3. JetBrain dotPeek:直接反编译成C#代码 4. Telerik JustDecompile: 同样支持反编译为IL.C#和VB 当然啦,.Net反编译软件有很多,这里只是简单滴介绍几个用着不错的反

使用.NET JustDecompile来反编译你的程序代码

前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL 档案. 首先大概介绍一下 DLL 是什么,DLL 全名是 Dynamic Linking Library (动态链接库),当你使用 .NET 开发应用程序时,使用的是网站项目或类别库时,当项目建置完成后即会在项目底下的 Bin 数据夹中产生将你所撰写项目中所有的 Class 档案编译成 DLL 档案

Eclipse反编译工具Jad及插件JadClipse配置

Jad是一个Java的一个反编译工 具,是用命令行执行,和通常JDK自带的java,javac命令是一样的.不过因为是控制台运行,所以用起来不太方便.不过幸好有一个eclipse的 插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码. 1  下载Eclipse反编译工具Jad. 下载路径:  http://pan.baidu.com/s/1tOSO2 2 把下载包中的 net.sf.jadclipse_3.3.0.jar放入到 eclipse的安装目录下,..

浅谈Android反编译工具apktool,dex2jar,jd-gui

自己布局的模式或方式很固定,看见一个炫酷的界面,总想看看是怎么布局的,今天小蜗牛就带大家学习怎么使用这三个工具.. 一 去各个软件的官网下载最新的软件 二 分别介绍各个软件的使用 1.首先使用apktool 将要反编译的apk放在已经下载的apktool.bat所在目录,如下图: 然后cmd命令行输入apktool d -f xxx.apk tt  注意:xxx.apk 是要反编译的apk,  tt是把apk反编译后文件放入的地方,特别 提醒,起初不要建这个目录,执行前面的命令后自动生成的. 如

myeclipse安装jadclipse(反编译工具)

我是myeclipse5.5 的IDE工具.为了能反编译class文件,上网搜索了很多资料,终于找到一下的一段资料: 1.将jad.exe 复制到myeclipse安装目录的jre/bin目录下, 如:C:/Program Files/MyEclipse 5.5.1 GA/jre/bin/jad.exe : 2.然后将net.sf.jadclipse_3.2.4.jar复制到myeclipse安装目录下的eclipse/plugins目录下, 如:C:/Program Files/MyEclip

Java 反编译工具下载

反编译,通俗来讲,就是将.java 文件经过编译生成的 .class 文件还原.注意这里的还原不等于 .java 文件.因为Java编译器在编译.java 文件的时候,会对代码进行一些处理. 那么接下来介绍几款 Java 反编译工具: 1.jad 这是一款使用很广泛的 Java 反编译工具,对 Java 底层代码的还原比较彻底.ps:个人比较喜欢这款 官网:https://varaneckas.com/jad/ 个人百度云下载地址:链接:http://pan.baidu.com/s/1jHNLx