Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否从.NET应用程序中删除元数据?_.net_Metadata_Decompiling - Fatal编程技术网

是否从.NET应用程序中删除元数据?

是否从.NET应用程序中删除元数据?,.net,metadata,decompiling,.net,Metadata,Decompiling,这可能吗?NET框架是否依赖字节码中的元数据?我希望我编写的应用程序不能在reflector或类似的.NET反编译器中运行。我认为您无法删除元数据,但如果您希望保护IP,则可以混淆代码 Dotfuscator将阻止您的代码被反编译 编辑:我应该提到,这是专业版,visual studio附带的免费社区版我想您指的是: 每个组件,无论是静态的还是静态的 动态,包含一组数据 这描述了 装配是相互关联的。这个 程序集清单包含以下内容 程序集元数据。集会 清单包含所有元数据 需要指定程序集的 版本要求

这可能吗?NET框架是否依赖字节码中的元数据?我希望我编写的应用程序不能在reflector或类似的.NET反编译器中运行。

我认为您无法删除元数据,但如果您希望保护IP,则可以混淆代码

Dotfuscator将阻止您的代码被反编译


编辑:我应该提到,这是专业版,visual studio附带的免费社区版

我想您指的是:

每个组件,无论是静态的还是静态的 动态,包含一组数据 这描述了 装配是相互关联的。这个 程序集清单包含以下内容 程序集元数据。集会 清单包含所有元数据 需要指定程序集的 版本要求和安全性 标识,以及 定义程序集的范围并 解析对资源和资源的引用 上课


.Net程序集最重要的特性之一是它们是自描述组件,这是由清单提供的。因此,删除它们会在某种程度上违背其目的。

如果删除元数据,框架将无法加载您的代码,或找出它引用的其他程序集,或类似的内容,因此,不,这不是一个好主意

混淆器会使“攻击者”更难反编译您的代码,但归根结底,如果有人是有动机和聪明的,那么您无法阻止他们。
NET将始终编译为MSIL,而且MSIL本身比原始x86更易于读取。这只是您在使用.NET时所做的权衡之一


别担心。apache、linux和其他所有软件的源代码都可以在网上免费获得,但这并没有给微软带来多少竞争优势,是吗:-)

这看起来像是一个问题:

请看我的回答:

“我想你说的是“混淆”。网上有很多关于它的文章:

NET上用于模糊处理的“标准”工具是由抢占式解决方案提供的:

他们有一个随VisualStudio附带的社区版,您可以使用它

你提到了ILDasm,你看过.NET反射器吗


它让您更好地了解如果发布清单,人们会看到什么!

像VMware的ThinApp(以前的Thinstall)这样的解决方案是否也有助于保护您的代码? 但是它的价格非常高