请教c#如何防止反编译呢



------
据说很容易反编译,有什么方法可以防止,或者可以加强难度。

给几个好的加密或混淆软件吧,最好是正式版 :)

谢谢啦
------
同关注。
------
我也关注
------
代码越复杂,层次分得越多,反编译难度越大。如果你就一个项目,所有的方法都在一个类里,没有接口和继承,别人一看就懂,自然就容易被反编译。要知道,反编译相当于是在没有注释的代码上写读懂然后提取出来自己组织,引用什么都要自己添加,工作量可不小啊。
------
关注
------
能将你项目反编译的人,还会有心情开你的代码么....
------
代码实现反射,混淆工具有XenoCode 2005 ,dotfuscator,MAXTOCODE 
看看微软.NET程序的加密与解密 
参考
------
学习
------
引用 5 楼 cstester 的回复:
能将你项目反编译的人,还会有心情开你的代码么....

------
引用 5 楼 cstester 的回复:
能将你项目反编译的人,还会有心情开你的代码么....

------
关注中....
------
关注中……………………
------
引用 9 楼 jakysuy 的回复:
引用 5 楼 cstester 的回复:
能将你项目反编译的人,还会有心情开你的代码么....

没有人和你讨论这个问题

------
顶起……
------
引用 3 楼 qldsrx 的回复:
代码越复杂,层次分得越多,反编译难度越大。如果你就一个项目,所有的方法都在一个类里,没有接口和继承,别人一看就懂,自然就容易被反编译。要知道,反编译相当于是在没有注释的代码上写读懂然后提取出来自己组织,引用什么都要自己添加,工作量可不小啊。

------
貌似符合lz要求的只有Dotfuscator CE了,这个安装IDE时就带着的,不过很简单,只支持rename等简单功能,不过注意一下实现,这也就够了。
------
混淆工具混淆是好办法.

但是目前的工具混淆有部分有问题.

自己尝试吧.
------
那么那些商业程序 如何实现不被破解的呢
------
www.chenjiliang.com
------
防反编译最好是采用非托管方法写代码。要不然就在C#代码中混入C++代码。如果是纯C#代码可以用MAXTOCODE加密混淆,挺好用的,支持国产。
------
我们可以通过下面的措施来保护软件:
1。获取用户的硬盘或CPU的序列号作为机器码。
2。用RSA算法的私钥对机器码加密作为用户的注册码。在程序中用公钥进行解密来验证注册码是否正确。
实现了以上两步后,Cracker不可能生成序列号生成器之类的软件。而一个注册码只能用在一台机器上。

Cracker要破解这样的软件,唯一的方法是改变程序的可执行文件。我们可以再采取措施对程序的可执行文件进行校验。
一个比较笨的方法是把程序的可执行文件读入内存,然后进行CRC校验。
程序中做几次CRC校验,再验证几次注册码,代码再写得乱一点,基本上可以让这个程序很难破解。
而即使破解后,Cracker必须提供一个exe文件,而很多用户都不愿使用来路不明的被crack过的exe文件。
所以这些措施仍然可以保护软件的。
------
我也想知道
------
。。。。。。。。。反编译
------
关注中
------
期待!
------
学习

------
关注,我想,你能怎么加密,别人就能怎么解密。
------
引用 22 楼 pilotedit 的回复:
我们可以通过下面的措施来保护软件:
1。获取用户的硬盘或CPU的序列号作为机器码。
2。用RSA算法的私钥对机器码加密作为用户的注册码。在程序中用公钥进行解密来验证注册码是否正确。
实现了以上两步后,Cracker不可能生成序列号生成器之类的软件。而一个注册码只能用在一台机器上。

Cracker要破解这样的软件,唯一的方法是改变程序的可执行文件。我们可以再采取措施对程序的可执行文件进行校验。
一个比较笨的方法是把程序的可执行文件读入内存,然后进行CRC校验。
程序中做几次CRC校验,再验证几次注册码,代码再写得乱一点,基本上可以让这个程序很难破解。
而即使破解后,Cracker必须提供一个exe文件,而很多用户都不愿使用来路不明的被crack过的exe文件。
所以这些措施仍然可以保护软件的。

------
硬盘或CPU的序列号 被套
------
Dotfuscator
------
只能试把代码混淆而已!!!.net中防止被反编译是难啊
------
lz反编译过已被混淆的程序没有?里面都是一堆堆的无意义变量和方法。
------
想知道如何加密解密
------
加入混杂代码
------
学习……
------
学习……
------
学习
------
把代码多分开写到几个类里
------
通过工具对软件进行分段加密,执行时按需解密,并执行边解密。这样即使内存被Dump也不可能被生成可执行代码。
------
路过...
------
我是来学习的
------
貌似是没有办法的事情!
------
学习
------
感觉好像挺难的
------
这个世界上没有开不了的锁 ` 没有破解不了的软件!

  微软强吗?操作系统都能破解...
就你开发的哪个小软件算得了什么......关键是看值不值得破解!
------
天啊 那人家商业程序如何实现,就比如商业的asp.net网站
------
ding...
------
商业级的大型软件很少关注这种东西,比如office,谁见过哪个傻逼吃饱了没事干去反编译word或者excel?
你有足够的时间和精力甚至可以对windows反编译,ms会在乎吗?linux的源代码完全公开,见过有几个人真正研究透了?
动态加密用的最多的是病毒程序,正常的程序哪个会用?就算动态加密仍然可以通过虚拟机执行分析,而这正是杀毒软件的技术。
应该多花点精力去研究算法,而不是搞这种无谓的东西,程序是越精简越好,而不是为了所谓的加密而加上一大坨垃圾代码

------
楼上说的对,加密强度越大越被破解的可能,我就是这种,喜欢挑战高加密的软件
------
引用 49 楼 superzxf 的回复:
商业级的大型软件很少关注这种东西,比如office,谁见过哪个傻逼吃饱了没事干去反编译word或者excel?
你有足够的时间和精力甚至可以对windows反编译,ms会在乎吗?linux的源代码完全公开,见过有几个人真正研究透了?
动态加密用的最多的是病毒程序,正常的程序哪个会用?就算动态加密仍然可以通过虚拟机执行分析,而这正是杀毒软件的技术。
应该多花点精力去研究算法,而不是搞这种无谓的东西,程序是越精简越好,而不是为了所谓的加密而加上一大坨垃圾代码


------
讨论范围小点,不要上手windows\office,就讲你现在写一个C#的网站程序。你如何保护你的知识产权!!!
------
不知道如何保护的,请路过或帮顶 谢谢!!
------
对于小的asp.net项目有一种简单的做法,就是把你的项目中的类、方法、变量手工重构为a、b、c之类无意义的名字,然后编译发布
------
引用 55 楼 yaazz 的回复:
对于小的asp.net项目有一种简单的做法,就是把你的项目中的类、方法、变量手工重构为a、b、c之类无意义的名字,然后编译发布

------
我估摸讨论来讨论去 还就是 做点混淆 差不多了 没有其他可行方法了
------
mark
------
加密狗对C#写的DLL加密,可以防止被反编译出源代码
QQ:476833461
------
引用 6 楼 wuyq11 的回复:
代码实现反射,混淆工具有XenoCode 2005 ,dotfuscator,MAXTOCODE
看看微软.NET程序的加密与解密
参考

------
学习
------
加壳工具 -Sixxpack.2.2
------
Xenocode Postbuild 2010 for .NET
------
关注 回复内容太短了! 

------
期待 关注

------
学习下
------
学习,学习。
------
我无语了啊
------
我用自带的dotfuscator
------
支持开源!!!
------
关注中
------
up......
桂ICP备07017180号