`
dyllove98
  • 浏览: 1405424 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39058
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80060
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133167
社区版块
存档分类
最新评论

C#中用ILMerge将所有引用的DLL和exe文件打成一个exe文件

 
阅读更多

以下实验在WIN7下.net framework3.5 平台,vs2008环境中测试通过

今天做了一个软件,想发布的时候才发现调用的类没几个,就像把它们都跟EXE文件打包在一起,以后复制去别的地方用也方便,于是上网搜了一下,发现网上大部分都是用ILMerge实现的,于是也自己试了一下,不过网上都没有详细的步骤演示,我就花点时间做了个教程,方便以后再有人想打包自己的程序, 有篇文章可以参考,好了废话少说,马上开始:

1.先到http://www.microsoft.com/downloads/details.aspx?FamilyID=22914587-B4AD-4EAE-87CF-B14AE6A939B0&displaylang=en下载ILMerge,才600多K,一下子就下好了.

查看原图(大图)

2.下载后是安装:

查看原图(大图)

3.不到一分钟就可以安装完毕:

4.我是安装在I盘下ILMerge目录下,以下是安装后的文件,就一个ILMerge.exe文件而已,我们等会就是用它打包程序的.

5.为了演示,我重新建了个工程,最后生成的是 Main.exe 和 newDll文件,其中newDll是Main.exe 中要引用的Dll文件,为了演示方便,我将它们都复制到了ILMerge的目录下,现在我们就试着用ILMerge将newDll和Main.exe文件打包起来吧.

6.然后进入dos窗口,进入ILMerge目录,然后执行下面代码:

I:ILMergeILMerge.exe /ndebug /target:winexe /out:newclient.exe MainExe.exe /log newDll.dll

7.ILMerge运行时的窗口,此时它正在努力的将Main.exe和newDll文件捆绑在一起:

查看原图(大图)

8.DOS窗口关闭后,我们在去ILMerge目录下看看,此时已经生成好了我们想要的newclient.exe文件,它就是Main.exe和newDll.dll的结合体啦:

语法:

1)、合并file1.dll、file2.dll到destination.dll

ILmerge /ndebug /target:dll /out:C:\destination.dll /log C:\file1.dll C:\file2.dll

2)、合并file1.dll、file2.dll以及myApp.exe到newApp.exe

ILmerge /ndebug /target:winexe /out:C:\newApp.exe /log C:\myapp.exe C:\file1.dll C:\file2.dll

注意:合并为exe时,myapp.exe必须写在file1.dll、file2.dll前面

完成之后,就得到了一个exe文件,如果想做一些邪恶的事情,可以将一些破解软件的dll合并到你的exe中去。前提是,所有的dll都是托管的,如果尝试合并C++写的dll,则会失败。有一个工具,叫做mergebin.exe,可以合并托管和非托管dll,用法我还没研究出来,似乎比较困难的样子。这个工具是ADO.NET 2.0 Data Provider for SQLite的作者写的,他发布的System.Data.SQLite.dll可以被dotNet程序引用,还可以直接被C/C++程序调用,这个dll就是托管和非托管混合的dll,果然是很牛的!mergebin.exe在其源码包里,有兴趣的朋友可以研究一下。这是其官方网站:http://sqlite.phxsoftware.com

继续邪恶的话题,如果你的exe里面合并有破解的dll,你可能不想让别人知道,或者你不想让别人反编译你的exe文件。混淆软件都收费,而且混淆之后方法还是看得见的,只不过名字毫无规则,没办法,用不了。还是加壳来的直接,我们得找一款很牛的加壳软件。给大家推荐个软件,叫做Sixxpack,专门加壳dotNet程序的,目前的最新版本为Sixxpack22,要求机器上装有.netframework2.0以上版本。Sixxpack除了加壳,还使用了压缩技术,最高压缩比达80%。Sixxpack是免费软件,官网是:http://www.reversers.net/

经Sixxpack加壳后,用Reflector打开exe文件,哈哈,看到的永远都只是一个actmp.dll的信息,其中包含4个7zip命名空间和1个Sixxpack命名空间,反编出来这些东西对也没啥用处。呵呵,原来是用7zip压缩的,难怪那么高的压缩比。

有一个问题是,用Sixxpack处理之后的程序集,版本信息是0.0.0.0,其他信息也不对。没关系,使用Resource Hacker修改一下就OK了! Resource Hacker也是免费软件,官网是:http://angusj.com/resourcehacker/

我这个小项目为了美化界面,用了一些邪恶的东西,最终的exe文件5MB左右,用Sixxpack处理之后,体积降到了2MB以内,运行时几乎没有性能损失。最重要的,很难反编译,可以放心拿给别人用了。

文章转载自:http://tech.ddvip.com/2010-04/1270099865149311.html

分享到:
评论

相关推荐

    C#将dll用ILMerge捆绑入EXE

    对于初学者,可以参考提供的文档如"C#中用ILMerge将所有引用的DLL和exe文件打成一个exe文件.doc"和"C#将dll捆绑入EXE.doc"来学习如何使用ILMerge,并了解其注意事项。这些文档通常会详细介绍步骤和常见问题,帮助...

    C#合并exe、dll工具ILMerge窗口版

    ILMerge是一款由微软开发的命令行工具,主要用于将多个.NET框架下的Assembly(包括.exe和.dll文件)合并成一个单一的可执行文件。它的主要目的是简化部署,减少应用程序所需的文件数量,同时也可以保护代码,避免...

    ILMerge GUI工具(.NET DLL合并工具)

    ILMerge本身是由微软开发的一个开源工具,用于将多个.NET框架下的DLL(动态链接库)文件合并成一个单一的可执行文件(EXE)或DLL。这个过程称为“DLL合并”,它在简化项目部署、减少依赖性以及管理版本冲突等方面...

    合并DLL到EXE文件

    C#写好程序往往会应用其他DLL类库,,给用户时不得不连带一些繁琐的DLL给用户,,,很不方便,,此工具能把DLL合并到EXE文件中,,这样就只给客户一个EXE文件即可。。。。。自己使用的,勿喷,,如有疑问请联系我!...

    ILMergeGUI 合并多个.net程序集和exe文件工具和源码

    ILMerge的核心功能在于它能够将多个.NET模块(包括DLL和EXE)合并到一个单独的可执行文件中。这在某些场景下非常有用,比如: 1. **发布便利**:合并后的单一文件可以简化部署过程,减少用户安装或运行时需要管理的...

    ILMerge EXE、Dll合并工具

    语言C# 利用ILMerge合并多个EXE、DLL 主文件:程序主要输出;合并后的程序。 关联文件:不参与合并,但必需要用到的程序集。

    c# dll、exe等合并工具

    总之,"c# dll、exe等合并工具"如ILMergeGUI.exe提供了将多个DLL和EXE整合到一个可执行文件的便利,以优化部署和管理。尽管这种方法有其优势,但在实际应用中应根据项目的具体需求和约束来决定是否采用。

    exe和dll文件合并工具

    可以把一些带dll的小工具做成一个简单的exe绿色文件。 引用微软官方的ILMerge命名空间写的,因为原来的ILMerge是一个使用命令行的工具,使用起来不方便,又看到了了文档里面可以引用这个命名空间来编程。于是就根据...

    C#将dll打包到程序中

    ILMerge是一个由微软提供的工具,可以将多个.NET程序集合并成一个单一的可执行文件。这包括将DLL合并到EXE中。使用ILMerge的步骤如下: 1. 下载ILMerge工具,解压并添加到你的系统环境变量PATH中,以便在命令行中...

    ILMerge 之 快速简单可视化界面合并 dll 包-ilmergegui2.0.9.7z

    ILMerge 是一个强大的工具,由微软的 .NET Framework 团队开发,用于将多个 .NET 应用程序组件(如 DLL 或 EXE 文件)合并到一个单一的可执行文件中。这个工具的主要目的是简化部署过程,减少用户需要安装的文件数量...

    最实用的dll合并软件和dll.exe合并软件

    1. **合并多个.NET程序集**:ILMerge可以将多个DLL和EXE文件合并成一个单一的可执行文件。这样做的好处在于减少了依赖关系,简化部署,用户只需运行一个文件即可。 2. **处理嵌入的资源**:合并过程中,ILMerge会...

    ILMerge C#合并多个文件

    ILMerge C#合并多个文件成一个文件

    多个DLL合并成一个DLL

    ILMerge 这个工具能把多个DLL合并成一个DLL。 开发打包方便多了。 多个DLL合并成一个DLL,把DLL合并到Exe中的解决方案 多个DLL合并成一个DLL,把DLL合并到Exe中的解决方案 开始-》运行 -》 "cmd" -> "cd C:\...

    .net exe dll 合并ILMergeGui.2.0.10.0

    ILMerge是一个由微软开发的实用程序,它能够将一个或多个.NET框架的中间语言(IL)模块合并到一个单一的IL模块中,这个模块可以是可执行文件(EXE)或者库文件(DLL)。 ILMerge的主要功能包括: 1. **合并exe和...

    ILMerge EXE 与 DLL合并工具

    微软提供的EXE和DLL合并的工具。找了很久官网上都找不到。 使用方法: 在软件安装路径下(shift+右键),....\ILMerge /ndebug /target:winexe /out:.\欲生成文件全名 可执行文件EXE绝对路径全名 库文件DLL绝对路径全名

    C# 将dll文件打包进exe可执行文件中

    6. **ILMerge**:这是一个工具,可以将多个.NET程序集(包括dll和exe)合并成一个单一的可执行文件。虽然ILMerge不是C#语言本身的功能,但它可以帮助开发者实现dll的打包。 7. **PE文件结构**:PE文件包含头文件、...

    C#打包成exe文件工具

    当我们完成一个C#项目后,通常需要将其打包成.exe可执行文件,以便于用户无需安装特定的开发环境就能直接运行。这个过程涉及到编译、构建和部署等多个环节。以下是对“C#打包成exe文件工具”这一主题的详细说明: ...

    ILMerge.exe 附带实例命令

    ILMerge的基本工作原理是,它会解析输入的DLL和EXE文件中的中间语言(IL,Intermediate Language)代码,并将它们合并到一个新的IL流中,然后再编译成一个单一的可执行文件。这样,当用户运行合并后的EXE时,所有...

    多个dll合并工具 ILMergeGUI

    ILMergeGUI是一款强大的DLL合并工具,它基于ILMerge并提供了图形用户界面,使得开发者能够更加方便地将多个DLL文件合并成一个单一的可执行文件(EXE)或库(DLL)。ILMerge是Microsoft公司开发的一个命令行工具,...

    ILMerge安装文件.zip

    ILMerge是一款强大的.NET工具,由微软的Mike Pope开发,用于将多个.NET程序集(dll和exe文件)合并成一个单一的可执行文件。这个工具在软件发布时特别有用,因为它可以减少用户需要下载和管理的文件数量,同时也能...

Global site tag (gtag.js) - Google Analytics