问题描述
学c#的时候不知道,到现在才知道c#编译的程序很容易的反编译,虽然自己是菜鸟,写的代码也没有什么好保护的,但是还是想知道怎么能有效的保护自己的程序,算是为以后想想吧。本以为.NETReactor怪强,但是最近听群里的一位大神说经过.NETReactor4.9.9.0加密的程序他们那个小组的人都会反编译
解决方案
解决方案二:
从本质上讲没办法,只要你的程序代码100%地在客户机上运行,人家都能破解。
解决方案三:
.NETReactor5.0暂时还可以不过和2楼说的那样,一般都是可以反编译的,这就是所谓的“防君子不防小人”。论坛里讨论过很多次这样的话题,最终都是一句话:写自己的代码,让别人看去。但,我觉得既然是自己写的东西,哪怕是初级的,我也希望得到保护。所以其实还有一些方案,值得参考的。比如ConfuserEx的源码,这类的加密,可以自己适当修改一些过程(C#),除非是非常熟悉编译的人,否则现成的工具是没法直接反编译的。
解决方案四:
这个反编译其是也不是那么容易的,并不是说你写一段代码别人反编译后就是你原来写的内容,只是根据反编译软件的思维来的,大致没错,但是很多GOTO语句。前阵子也反编译过别人项目的服务和WEB,几万行的代码,全改成你自己的,也是累。所以,“写自己的代码,让别人看去吧”。先把基本功练好吧!
解决方案五:
代码混淆,加壳,用别的语言改写
解决方案六:
不得不说这是一个所有人都纠结过、思考过的问题,同样的,大多数看上去似乎无法解决的问题,最终的状态都是释然的。因为永远不可能有破解不了的问题,关键是看你的程序价值有多高、破解难度有多高、破解获利有多大,这些都是制约破解和反破解的因素。举个例子:我做了一个Test程序,里面只有了了几句代码,没有调用关系,同时故意使用基址来存储变量的值,等等,我精心为破解者制造成功的环境,但很可惜,不会有人来破解,那么我可以宣布,我这个程序实际上破解率为0%从心理学和机会成本上来说,当一个破解者要话费10人工/时×100元来破解一个最终获利不会超过500元的小产品时,他会选择放弃。当想明白这些后,我想任何人都会渐渐释然的,因为防止破解突然变得非常明朗:我只需评估一下我的开发成本和最终获利,然后选择相应难度的防破解手段,似乎就是最终的赢家了。其实一般的中小型项目,代码混淆就足够了;而更大些的项目,相信团队都会花很多功夫在设计全局的交互逻辑上,逻辑复杂了,代码就会产生“直接拿来也看不懂”的情况,配合互联网身份认证、硬件绑定(如加密狗)等,已经足以睡个好觉了。但是最后,共享和开源是一个不得不考虑的方向,开源的获利甚至高于出售,全看你怎么理解。
解决方案七:
关键代码用异步语法(Task,async,await),类使用嵌套的,这样不用混淆反编译出来的一般人也看不懂!
解决方案八:
现在是开源共享的年代,没有什么代码是不能被替代或者共享的
解决方案九:
复杂的系统,给你带注释的源码你也不一定能改的好,何况是反编译的代码开源并不表示不能销售况且你不拿着从网上下载的dll就用吗?有没有源码有什么关系