none
Win Form程序如何不让别人反射 RRS feed

答案

  • 目前对于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);

          编译运行这个后,再用Reflector查看就看不到源代码。不过还是可以用反射脱壳破解的。

          2.使用Sixxpack
           这是个给.net程序加壳并压缩的工具,压缩比最大可达80%,压缩完之后就编译不出源文件了。用Reflector查看的话都是actmp.dll的信息。不过最近看cnblogs里有人给出了破解这个的方法,有兴趣的可以去找找看。
          下载地址:http://dl.onlinedown.net/soft/56183.htm

    我一般是两种方法合在一起用,基本没有解析出源代码的可能性。即便解析也要花费很大的成本。


    2012年8月21日 5:36
  • 您好,
    如果您只是怕代码被人看到的话,也可使用模糊化软体来做哦!
    请参考以下帖子,希望对您有有帮助,谢谢!

    [Tool]使用PreEmptive的Dotfuscator來做模糊化

    [Tool]使用redgate的SmartAssembly(SA)來做模糊化


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年8月21日 6:02

全部回复

  • 目前对于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);

          编译运行这个后,再用Reflector查看就看不到源代码。不过还是可以用反射脱壳破解的。

          2.使用Sixxpack
           这是个给.net程序加壳并压缩的工具,压缩比最大可达80%,压缩完之后就编译不出源文件了。用Reflector查看的话都是actmp.dll的信息。不过最近看cnblogs里有人给出了破解这个的方法,有兴趣的可以去找找看。
          下载地址:http://dl.onlinedown.net/soft/56183.htm

    我一般是两种方法合在一起用,基本没有解析出源代码的可能性。即便解析也要花费很大的成本。


    2012年8月21日 5:36
  • 您好,
    如果您只是怕代码被人看到的话,也可使用模糊化软体来做哦!
    请参考以下帖子,希望对您有有帮助,谢谢!

    [Tool]使用PreEmptive的Dotfuscator來做模糊化

    [Tool]使用redgate的SmartAssembly(SA)來做模糊化


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年8月21日 6:02