net C#开发的软件,用什么方法防止反编译?:.net是中间语言,刚开始出来的时候,比较流行混淆方式让破解者增加破解难度,但是由于.net写的程序代码是直接交给托
.net是中间语言,刚开始出来的时候,比较流行混淆方式让破解者增加破解难度,但是由于.net写的程序代码是直接交给托管程序去解析的,所以你混淆也没多大意义了,因为你再怎么混淆最终执行的时候也得让托管程序能识别,现在的流行方式是把重要代码和加密算法结合起来,并且将主要代码放多个虚拟机里执行,或者主要代码放服务器上,只有注册并且解密成功后才返回正确的代码。注意做注册机制的时候,不要只单纯的验证注册码是不是正确。最好是能把注册码和加密算法关联起来。这样即使破解者爆破了你的程序,由于没有成功解密主要数据,等于也没有破解成功。
使用随机想出来的东西做方法名和变量名字,代码不需要逻辑性。这样就算是你自己想看懂也要好久,害怕反编译?
是不是用.net 做了工业软件,完全运行在客户端上,自己没有服务器?
如果是这样的话,一般选择加密服务,有公司专门提供这种服务,记得以前公司用过加密狗的,是硬件加密的,要运行需要一个特殊的key,那个东西是专门的一个u盘。
还有一种方式,那就是用c或者C++写核心代码,然后用c#调用它,这样即使反编译也没有用。知道有人肯定说可以反向c,c++代码,这个也是可以的,就是成本比较高。
如果有服务器端,应该没有阻止反编译的问题。
纠结软件的会不会被反编译是没意义的,任何高级语言开发的软件都能被反编译,无非是代价的高低罢了,如果别人真的想反编译你的软件,总能找到方法的。
visual studio 自带一个 obfuscation, 还有更专业的可以买,这个工具在javascript 世界叫uglifier一样的东西。但是别忘了stacktrace将难以辨别,所以必须要用专业工具转换回来才能读懂stacktrace,而且这个工具必须要用原来的symbol 数据(在obfuscation)时候产生的来解码,版本不对,根本不行。
只要造成读代码一定难度,反编译就是成功的,不要听那些人瞎扯,以为自己能读.net intermediate language很牛,你破解软件,这种雕虫小技是可以的,软件一复杂,恐怕给你源代码都不见得能完全读懂,还想靠IL偷代码? 而且即便偷了还是要吃官司。
我专治《防止.net反编译》各种不服。IL代码层直接干。
有第三方的加密服务产品。包括代码深度混淆,组件加壳,动态库嵌入加密,硬件狗等等很多种。
最方便简单的是深度混淆,它不会完全防止反编译,但是反编译出来的代码不仅是无法阅读,它根本就无法再编译,因为混淆的结果是各种方法名,类名,变量名全部变成数字代码或者各种特殊符号,它根本不符合代码规范。
组件加壳很好理解,它把你的程序和需要的系统库都用加密方式嵌入到一个程序包里。无法反编译。不但实现了加密加壳,同时实现了all in one的脱离系统框架环境运行。
其它的几种就是各种加密和技术的混合了,
一天中什么时候运动减肥效果好抓 小孩能不能练哑铃多大的孩子适合 小孩嘴唇起皮怎么办怎样才能预防 孩子的罗圈腿是怎么形成的三大因 孩子早恋怎么办如何有效疏导孩子 医生婆婆称自己专业孩子的事必须 儿子成人礼送什么礼物好呢给你孩 有孩子的夫妻千万不要离婚对于孩 小孩千万别让老人带的说法正确吗 自卑缺乏安全感的孩子怎么改善 怎么让孩子开口说话 这几个方法 怎么让孩子吃饭 教你如何让孩子 怎么管教不听话的孩子 家长首先 顽皮的孩子怎么管教的 这些方法 叛逆期的孩子怎么管教 引导孩子 孩子性格软弱怎么办 懦弱的性格 孩子性格偏激怎么办 孩子性格偏 孩子性格固执怎么办 家长们不妨 爱惹事的孩子怎么管教 不妨试试 养育优秀的孩子具备特征,家长要 高考数学难出新天际,可有的孩子 “做胎教”和“不做胎教”的孩子 花费十几万只考了302分 妈妈觉得 甘肃作弊考生留下来的疑团,是怎 一举夺魁!高三学生离校时,校领 高考钉子户:26次参加高考,今年 D2809次列车因泥石流脱线!此类 “女儿16岁,学校宿舍里分娩了” 扭曲邪门的内容,频频出现在教科 川渝地区几所大学实力很牛!四川