Предотвращение перехвата DLL основных библиотек .NET Framework

Существует основная библиотека .NET Framework (mscorjit.dll), которая отсутствует на компьютере пользователя, мое приложение .NET пытается загрузить библиотеку, но ничего не происходит (приложение не аварийно завершает работу), даже если она отсутствует. Я считаю, что это может привести к захвату DLL. Есть ли способ избежать зависимости от этой библиотеки, чтобы она не искала эту библиотеку при загрузке приложения?

Я был бы признателен за любые указатели или рекомендации по этому вопросу.

Я пытался удалить многие зависимости из приложения, но приложение все равно пытается найти эту библиотеку во время загрузки.

Он загружает DLL из непредусмотренных мест вместо загрузки из каталога Sys32, и я думаю, что это связано не с моим приложением, а с тем, как .NET Framework загружает DLL, поэтому я хочу знать, есть ли способ предотвратить это.

CaesarMyMate 07.07.2023 12:50

Эта сборка должна быть загружена из глобального кэша сборок, а не из простого системного каталога. Даже если что-то будет найдено в папке с программами, оно не будет загружено. Версия в GAC будет предпочтительнее. Вектор атаки, удаляющий его из GAC, добавляющий что-то в вашу папку с правильной подписью кода для этой вещи, маловероятен. И если бы он мог сделать все это, атаковать ваше приложение напрямую было бы намного проще.

Ralf 07.07.2023 14:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
68
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

mscorjit.dll содержит реализацию JIT-компилятора в .NET 2.0 или ниже. В более поздних версиях это называется clrjit.dll.

И нет, вы не можете удалить эту зависимость. Это часть .NET.

Ответ принят как подходящий

Короче - нет. Если вы можете перейти с .NET Framework на .NET Core, вы можете попытаться опубликовать свое приложение как автономное однофайловое приложение. Или даже используя нативный AOT (то есть скомпилированный в нативный код).

P.S.

Если библиотека .NET Framework (mscorjit.dll) захвачена на компьютере пользователя, возникает гораздо больше проблем, чем просто какое-то приложение, скомпрометирована вся система. Если вы беспокоитесь о том, что пользователь возится с вашим приложением, то захват основной dll также не должен быть в списке с высоким приоритетом (декомпиляция .NET будет намного проще).

Другие вопросы по теме