编译为 .Net 中的本机代码是否会完全删除 MSIL?

发布于 2024-10-10 03:59:24 字数 224 浏览 5 评论 0原文

我想知道,在反汇编 .Net 代码(Redgate .Net Reflector 等)的情况下,使用 Ngen 将代码编译为本机是否更安全?也就是说,这是否意味着有人现在需要 IDA 和 ASM 技能来反汇编(并理解)您的代码,而不是相对简单的 MSIL 反编译?

是的,我知道 MS 正是为此目的提供了一个混淆器,但我很好奇编译为本机是否是一个更好的解决方案,需要进行一些权衡(无 JIT)。

谢谢。

I'm wondering if, in the context of disassembling .Net code (Redgate .Net reflector, etc), is it more secure to compile your code to native, using Ngen? That is, does that mean someone would now need IDA and ASM skills to disassemble (and make sense) of your code vs the relatively trivial de-compiling of MSIL?

Yes, I'm aware that MS provides a obfuscater for exactly this purpose, but I'm curious if compiling to native is a better solution, with some tradeoffs(no JIT).

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流心雨 2024-10-17 03:59:24

ngen 不会删除 MSIL(或者更确切地说,如果没有 MSIL 文件,ngen 生成的本机二进制文件将无法使用)。验证程序仍使用 MSIL 来确定是否在部分信任场景中加载程序集以及进行反射。

此处提供了很多有用的信息。

ngen doesn't remove the MSIL (or rather, the native binary produced by ngen is unusable without also having the MSIL file). MSIL is still used by the verifier to determine whether to load assemblies in partial-trust scenarios, and for reflection.

There's a lot of good information here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文