C#程序加壳的方法(使用Sixxpack)
2013-01-15 20:54
477 查看
C#程序加壳的方法(使用Sixxpack)
分类:
Winform开发积累 2009-12-18 14:06
129人阅读 评论(0)
收藏
举报
这几天在做自己的一个小程序,因为使用了3层架构,运行目录下有很多dll文件,最终发布时,我打算将dll文件都合并到exe文件中去。微软发布的免费软件ILmerge可以完成这项工作,研究了一下,其用法如下:
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以内,运行时几乎没有性能损失。最重要的,很难反编译,可以放心拿给别人用了。
转载▼
一、用reflector 直接输出项目
二、打开项目,编译,会有一些类型的小错误,修正一下
三、修改一行代码
Stream stream2 = newFileStream(Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf('\\')+ 1), FileMode.Open, FileAccess.Read);
改成:
Stream stream2 = new FileStream(@"c:\hhh.exe", FileMode.Open,FileAccess.Read); //这个路径指的是那个被加壳的程序
四、加一行代码
在这行之前:Assembly assembly =Assembly.Load(compressor.Decompress(inStream));
加上:System.IO.File.WriteAllBytes(@"c:\test.exe",compressor.Decompress(inStream));要不要retrun,自己看着办
五、c:\test.exe 就是被脱壳的程序了。
分类:
Winform开发积累 2009-12-18 14:06
129人阅读 评论(0)
收藏
举报
这几天在做自己的一个小程序,因为使用了3层架构,运行目录下有很多dll文件,最终发布时,我打算将dll文件都合并到exe文件中去。微软发布的免费软件ILmerge可以完成这项工作,研究了一下,其用法如下:
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以内,运行时几乎没有性能损失。最重要的,很难反编译,可以放心拿给别人用了。
Sixxpack脱壳的过程
(2012-02-22 16:30:48)转载▼
二、打开项目,编译,会有一些类型的小错误,修正一下
三、修改一行代码
Stream stream2 = newFileStream(Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf('\\')+ 1), FileMode.Open, FileAccess.Read);
改成:
Stream stream2 = new FileStream(@"c:\hhh.exe", FileMode.Open,FileAccess.Read); //这个路径指的是那个被加壳的程序
四、加一行代码
在这行之前:Assembly assembly =Assembly.Load(compressor.Decompress(inStream));
加上:System.IO.File.WriteAllBytes(@"c:\test.exe",compressor.Decompress(inStream));要不要retrun,自己看着办
五、c:\test.exe 就是被脱壳的程序了。
相关文章推荐
- C#程序加壳的方法(使用Sixxpack)
- C#程序加壳的方法(使用Sixxpack) [转载]
- C#程序加壳的方法(使用Sixxpack)
- 为使用Sixxpack加壳的.net程序脱壳
- C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码
- C#使用Mutex简单实现程序单实例运行的方法
- 编写高质量代码改善C#程序的157个建议——建议89:在并行方法体中谨慎使用锁
- C# 使用MarshalByRefObject跨程序调用方法
- C#测量程序运行时间及cpu使用时间实例方法
- C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码
- 改善C#程序的50种方法 条款6:明辨值类型和引用类型的使用场合
- 在C#程序中使用ocx的方法
- 编写高质量代码改善C#程序的157个建议——建议6: 区别readonly和const的使用方法
- 编写高质量代码改善C#程序的157个建议——建议37:使用Lambda表达式代替方法和匿名方法
- 给C#程序加壳(C# 调用嵌入资源的EXE文件方法)
- C#使用Process.Start启动程序出错“Unknown error (0xffffffff)”的解决方法
- 编写高质量代码改善C#程序的157个建议[正确操作字符串、使用默认转型方法、却别对待强制转换与as和is]
- 编写高质量代码改善C#程序的157个建议——建议2: 使用默认转型方法
- C# 使用 Environment.GetCommandLineArgs 方法 制作*.exe和参数 供其他程序调用
- C#中使用IrisSkin2.dll美化WinForm程序界面的方法