有一个核心.NET Framework库(mscorjit.dll)在用户的计算机上丢失,我的.NET应用程序试图加载库,但什么也没有发生(应用程序没有崩溃),即使它丢失了。我相信这可能会导致DLL劫持。有没有一种方法可以避免对这个库的依赖,以便在加载应用程序时不查找这个库?我希望在这个问题上得到任何提示或指导。我已经尝试从应用程序中删除许多依赖项,但应用程序仍然试图在加载过程中找到这个库。
n9vozmp41#
mscorjit.dll包含.NET 2.0或更低版本中JIT编译器的实现。在后来的版本中,它被称为clrjit.dll。不,你不能消除这种依赖。它是. NET的一部分。
mscorjit.dll
clrjit.dll
taor4pac2#
简而言之-不。如果您可以从.NET Framework迁移到.NET Core,那么您可以尝试将应用程序发布为自包含的single-file应用程序。或者甚至使用native AOT(即编译为本地代码)。P.S.如果.NET Framework Library(mscorjit.dll)在用户机器上被劫持,那么不仅仅是一些应用程序,整个系统都会受到损害。如果你担心用户扰乱你的应用程序,那么核心dll劫持也不应该在高优先级列表上(.NET反编译将是更容易的方法)。
2条答案
按热度按时间n9vozmp41#
mscorjit.dll
包含.NET 2.0或更低版本中JIT编译器的实现。在后来的版本中,它被称为clrjit.dll
。不,你不能消除这种依赖。它是. NET的一部分。
taor4pac2#
简而言之-不。如果您可以从.NET Framework迁移到.NET Core,那么您可以尝试将应用程序发布为自包含的single-file应用程序。或者甚至使用native AOT(即编译为本地代码)。
P.S.
如果.NET Framework Library(mscorjit.dll)在用户机器上被劫持,那么不仅仅是一些应用程序,整个系统都会受到损害。如果你担心用户扰乱你的应用程序,那么核心dll劫持也不应该在高优先级列表上(.NET反编译将是更容易的方法)。