C# 程序加壳
转自 http://www.lwolf.cn/blog/article/code/csharp-shell%20.htm
最近上网找了下给C#程序加壳的方法,找到了一些方法,自己试了一下,感觉还挺不错的。以下是在网上找到的,在这里整理一下,以后要用到的时候也方便。
1.反射加壳
新建一个CMD项目,复制程序到项目文件中,并设置成为“嵌入式资源”。
程序代码
Stream sr = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.程序.exe");
byte[] fileBytes = new byte[sr.Length];
sr.Read(fileBytes, 0, (int)sr.Length -1);
Assembly assembly = Assembly.Load(fileBytes);
MethodInfo mi = assembly.EntryPoint;
mi.Invoke(null, null);
byte[] fileBytes = new byte[sr.Length];
sr.Read(fileBytes, 0, (int)sr.Length -1);
Assembly assembly = Assembly.Load(fileBytes);
MethodInfo mi = assembly.EntryPoint;
mi.Invoke(null, null);
编译运行这个后,再用Reflector查看就看不到源代码。不过还是可以用反射脱壳破解的,这个我就不太懂了
2.使用Sixxpack
这是个给.net程序加壳并压缩的工具,压缩比最大可达80%,压缩完之后就编译不出源文件了。用Reflector查看的话都是actmp.dll的信息。不过最近看cnblogs里有人给出了破解这个的方法,有兴趣的可以去找找看。
找关天没找到官网地址,网上找的都是2.2汉化版,也不知道是不是最新的,下载地址:http://dl.onlinedown.net/soft/56183.htm
把这两种方法结合起来使用还是挺有意思的,起码增加了别人破解的难度~~~呵呵