如何保护C#应用程序免于反编译和反汇编

时间:2012-06-14 07:26:08

标签: c# windows security

假设一旦构建exe,没有人可以挖掘源代码或应用程序的oi-out但是看了之后 Is it possible to "decompile" a Windows .exe? Or at least view the Assembly?

我的假设出了问题。然后,如果每个逻辑都只在exe内部被烧毁,那么保护我们的VS项目的方式是什么。

如果我们使用在C#中开发的DLL,那么它也可以反编译吗?

5 个答案:

答案 0 :(得分:4)

没有办法阻止任何人反编译

您可以使用obfuscator更改变量,方法或类的名称,以降低代码的可理解性。

根据msdn。

  

至于保护方面,有许多不同的方案   客户告诉过我。

     
      
  1. 没有保护。有些公司销售的产品既有源代码,也有源代码,可以单独购买,也可以   选择不保护其应用程序的某些部分   小IP。
  2.   
  3. 有些公司使用VS 7.1附带的混淆器(PreEmptive Solution的“社区版”Dotfuscator
  4.   
  5. 有些公司使用其中一个商业混淆器。 MSDN上的C#开发人员中心有一个list
  6.   
  7. 有些公司用C ++编写代码的敏感部分,将其编译为非托管DLL,然后使用interop调用   非托管DLL。
  8.   

答案 1 :(得分:1)

你必须使用混淆器来完成你的任务 你可以免费找到一个人(能力有限)和许多商业人士 使用“c#obfuscator”搜索Google并查看。

答案 2 :(得分:1)

您可以使用Obfuscation来进行反汇编。

答案 3 :(得分:1)

有一些软件许可工具允许您使用其安全API和工具封装和加密您的代码。看看SafeNet Sentinel LDK。问题是它不是免费的。但除了上述内容之外,它还允许您为软件的ip提供额外的安全性。

答案 4 :(得分:0)

您使用代码混淆,该工具会将您的代码更改为人无法理解您的代码的形式。

它会将您的有效/可读函数名称更改为不可读的形式。例如,GetPersonData()__A___ASAS_()

https://stackoverflow.com/questions/805549/free-obfuscation-tools-for-net