gpt4 book ai didi

.net - 为什么 UPX 不适用于 .NET 可执行文件?

转载 作者:行者123 更新时间:2023-12-01 10:01:16 28 4
gpt4 key购买 nike

如果 .NET 可执行文件是 PE 文件,为什么所有像 UPX 这样的加壳程序都会“破坏”它?

最佳答案

UPX 专为原生 应用程序而设计。这些是直接编译为机器代码的应用程序。

以 .NET Framework 为目标的可执行文件不是 native 应用程序,而是托管应用程序。换句话说,它们在运行时环境(公共(public)语言运行时或 CLR)之上运行,并被编译成一种“中间语言”(IL),直到运行时才被编译成机器语言(这个过程被称为 JIT,或即时编译)。

UPX 可以直接处理非托管机器代码,但不适用于托管应用程序。如果应用程序的代码被压缩并因此无法读取,JIT 编译器将如何即时编译应用程序代码?它不会;它将看到该文件已损坏。

虽然没有太大的损失。今天压缩可执行文件的缺点多于优点。除此之外,由于托管应用程序被编译为 IL,因此它们通常首先小于等效的非托管应用程序。

关于.net - 为什么 UPX 不适用于 .NET 可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728510/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com