情况如下:
在winform程序里,要动态地生成一个exe可执行文件,所以我把生成exe程序所用的几个cs源文件作为资源文件加到工程里,动态地加载这几个资源文件,生成exe程序。这么做,问题来了,winform主程序本身编译后生成的exe程序(此处说的不是动态生成的那个exe程序),用文本编辑器打开后,作为资源文件加入的那几个cs文件源代码一览无遗。这可受不了,这些代码内涉及到需要保密的东东。我也想过先把几个cs文件编译后生成的exe文件加到工程里作为资源文件,但这样做达不到要求,因为每次动态地生成时,要动态地修改那几个cs源文件,传一些参数进去。所以这样做不现实。哪位仁兄有好的建议,给点,成不?

解决方案 »

  1.   

    大概看了下,有个地方没太懂,是不是你将cs文件放到工程里编译后的exe用文本编辑器打开能看到代码?考虑用md5对这段加密以下如何??每次动态编译前解密之后再编译
      

  2.   

    .net的程序都可以用Reflector反编译出源代码的,除非做混淆或者用加密壳
      

  3.   

    lookatliu(独孤常败) ,md5加密后不能还原。你说的不可行。
      

  4.   

    ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconemittingdynamicassemblies.htm
      

  5.   

    bigrongshu(人中直似衡,财上平如水)
    說的對,Reflector把.dll文件還原的很好,99.9%都可以還原,所以有保密的東西還是自己加密吧,要想動態加載,還是用.dll比較好,內嵌資源不適合動態加載。
      

  6.   

    ...我只是给个提示罢了,加密你可以自己写个密钥去搞,无所谓什么方式的阿。只要不是明文就好了。要不你考虑用zip压缩下保存下来每次动态解压缩,然后再编译。我们的目的就是不要明文而已
      

  7.   

    bigrongshu(人中直似衡,财上平如水) ,做混淆可以把资源文件也混淆吗?
      

  8.   

    我也知道可解密的加密算法,对称加密算法des,tripledes,rc2, aes, 都可以,但这样耗时
    太多,不可行啊
      

  9.   

    混淆是混淆编译后的IL代码,非IL代码混淆不了的。
      

  10.   

    …………莫非lz的意思就是不能对cs文件进行改动咯?
      

  11.   

    呵,我想楼主并不是想要反射。
    我前段时间刚好研究了一下这方面的东东。建议你利用 SharpZipLib 将嵌入的源代码文件加密压缩一下,动态编译前再解压。
      

  12.   

    在winform程序里,要动态地生成一个exe可执行文件,所以我把生成exe程序所用的几个cs源文件作为资源文件加到工程里,动态地加载这几个资源文件,生成exe程序。
    这个是怎么做的?没有明白,哪个高人给讲讲?
      

  13.   

    ilovechao1314(haha)
     
       在winform程序里,要动态地生成一个exe可执行文件,所以我把生成exe程序所用的几个cs源文件作为资源文件加到工程里,动态地加载这几个资源文件,生成exe程序。
    这个是怎么做的?没有明白,哪个高人给讲讲?
    ================================================================ 
    就是把某些源代码作为资源文件放在程序中,需要时再把它取出来编译成另一个exe文件
      

  14.   

    像 Reflector 的升级程序就应该是这样的。没有额外的升级程序,但可以支持在线升级,替换原来的exe文件。
      

  15.   

    觉得用压缩也行啊
    如果要生成的exe文件是固定的,可以事先用二进制方法读出来,然后加密一下,当成资源文件和主程序文件放一起就行了,要用时再解密解压就OK了
      

  16.   

    把代码分成n块并编号,固定的和需要变动的,固定的在程序中,不固定的在资源文件中加密。一个需要执行cs就是一组编号。
      

  17.   

    不过话说回来dotNet编译成的exe,用专门的工具照样把你反编译成源代码。
      

  18.   

    搂住查查MSDN,研究一下codeDom,使用程序去创建这些cs文件,即时编译,编译后删除。如果你的winform主程序能不被泄漏代码,那么都是安全的。