大神指点!怎样将c#编译成机器码防反编译???

阿辉2021 2018-11-12 10:22:36
这段时间做了个c#的项目,因为要用商业,必须要防反编译,到网上查了很多资料,加壳、混淆、加密、都试了,都不行,网上都有相应的腿壳、反混淆、解密方案,自己写的代码又被自己轻轻松松的反编译出来,只有很少的错误,稍作调整又是一套完整的程序 顿时一脸蒙逼,到网上查了很久发现如果想c++编译成机器码应该是可以防反编译的,别人反编译出来的也是汇编代码,这样别人在想还原c#源码就难了,他有那么长时间还原还不如自己写源码来的快。这就达到了防止反编译的目的。不知道哪位大神能给小弟指点c#.net怎么编译成机器码???????
...全文
246 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
datafansbj 2019-08-15
  • 打赏
  • 举报
回复
任何可加密的东西都有可能被解密,只是难易程度不同而已。越是常见的加壳、混淆工具,尝试做反编译的人就越多,就越有可能被破解。反之不那么出名的工具,搞的人就很少。可从商业软件入手,不要使用开源、免费的工具。
皮皮熊_1989 2019-08-15
  • 打赏
  • 举报
回复
其实这年头了,也没必要搞什么代码加密。 很多软件都是服务端一套,客户端/前端一套的分离式设计。比如服务端只公开个API,不用管客户端/前端是什么都通杀,核心业务逻辑写在服务端。好比服务端是个插座,什么样的插头随便插,只要你遵守插座的定义就好了。 发布在公网的服务端上的代码,除非有内鬼,不然别人也是拿不到的。还有,如果是给别人做的项目而非自己的产品,客户肯定找你要源码的,你也不可能不给。 当然了,如果你只是做一些单机运行的,那就另当别论啦,目前来看,其实这种不是很多。
super_admi 2019-08-11
  • 打赏
  • 举报
回复
绝大多数的源代码都没有反编译去研究的价值,你想多了。
城墟 2019-08-11
  • 打赏
  • 举报
回复
保证.NET程序的安全,我的做法是直接加密整个.NET程序文件,可行的方法目前是有几种的: 1.用C++来解密.NET程序,然后调用.NET Runtime来运行解密后的程序文件。(.NET是可以直接从内存中加载程序集运行的) 2.将程序作为资源进行加密,写一个启动程序,先解密出来再通过mono虚拟机承载.NET的运行。 3.现在.NET Core运行时是开源的,可以用C++加载Core运行时去承载.NET程序运行,当然也可以加密.NET程序文件,这样更安全。
城墟 2019-08-11
  • 打赏
  • 举报
回复
引用 8 楼 以专业开发人员为伍 的回复:
比如说你卖别人汽车发动机,别人拆了却看不懂,这才是发动机工程师要做的事情。软件也是一样,你不会采用高级的语法糖来编写软件,也不会用高级的自己设计的模式来装入软件逻辑,而只会最简单最低级的——费体力的——语法来编写软件,这样你们的软件反编译跟源代码一样。
到哪都有你,回答是牛头不对马嘴。。。道理谁都懂,咱们能不能聊点对某方面的技术的探讨?不是你这么水帖的呀~~
牧歌ing 2019-05-15
  • 打赏
  • 举报
回复
核心代码申请专利,谁用就告他
YiYanXiYin 2019-05-15
  • 打赏
  • 举报
回复
微软都拿到很头痛的
YiYanXiYin 2019-05-15
  • 打赏
  • 举报
回复
等微软出编译器
良朋 2018-11-13
  • 打赏
  • 举报
回复
加壳混淆吧,如果他们还能反编译过来,说明你的软件具有反编译的价值,你挡都挡不住。
橘子皮... 2018-11-13
  • 打赏
  • 举报
回复
加壳混淆倒是没问题,就是混淆后错误行号反馈不出来啊,有些加壳后还不稳定,哎,Net这个真是让人蛋疼,不知道大家遇到过没,我好几个混淆后的总遇到莫明其妙的问题
threenewbee 2018-11-13
  • 打赏
  • 举报
回复
用c++改写你的程序,都比什么C#编译成机器码容易
  • 打赏
  • 举报
回复
混淆加壳,比如用vb加壳之类的
泡泡龙 2018-11-13
  • 打赏
  • 举报
回复
tmd或者vmp加壳
Tiny~ 2018-11-13
  • 打赏
  • 举报
回复
不做混淆,如楼主你自己说的,以前我也用过好多种,几乎都被当成病毒---包括微软的windows defender直接把程序当病毒给杀了……
做联网认证,只能这样好一点……其实就是https还是可以伪造的,只能说好一点。。

boyqing 2018-11-13
  • 打赏
  • 举报
回复
加壳混淆,联网认证,定期更换电子签名
  • 打赏
  • 举报
回复
比如说你卖别人汽车发动机,别人拆了却看不懂,这才是发动机工程师要做的事情。软件也是一样,你不会采用高级的语法糖来编写软件,也不会用高级的自己设计的模式来装入软件逻辑,而只会最简单最低级的——费体力的——语法来编写软件,这样你们的软件反编译跟源代码一样。
  • 打赏
  • 举报
回复
比如说你卖给别人一辆汽车,你看到别人能拆汽车是不是也“蒙蔽”呢?那说明你不是搞汽车的。如果市场上见到了类似款汽车,哪怕是部件外观类似,正常的想法是“去法院告死他”,而不是把自己的汽车给毁成垃圾铁钉。
  • 打赏
  • 举报
回复
我们做项目,都提供给人家99.9%的源代码的。
assky124 2018-11-13
  • 打赏
  • 举报
回复
真正的防盗版基本都是联网的

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧