Задать вопрос
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..

Можно ли подменить dll сборку в .Net?

Например, простой код:
using System;

	class Program
	{
		public static void Main(string[] args)
		{
			Console.ReadKey(true);
		}
	}

После сборки, загружаю в декомпилятор, и вижу что программа использует mscorlib.dll по адресу: C:\Windows\Microsoft.NET\Framework\v4.0.30319

Есть ли список каталогов, в которых ищутся сборки, или они жестко вшитые? И можно ли, без редактирования приложения, заставить использовать mscorlib.dll из другой папки?
  • Вопрос задан
  • 223 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 4
Да - можно положить рядом с екзешником, например. Но с mscorlib такое, скорее всего, не прокатит, тк это подписанная сборка и приложение будет искать конкретную сборку
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Возможно это вас наведет на что то

C:\Users\kvn>echo %windir%
C:\Windows


Впрочем если PE лоадер найдет где то эту библиотеку раньше. А это уже нужно смотреть в PSDK. То может быть и запустится
Ответ написан
Комментировать
freeExec
@freeExec
Участник OpenStreetMap
Может положить его рядом с файлом .ехе.
Ответ написан
@d-stream
Готовые решения - не подаю, но...
Ну можно создать отдельный домен приложения и грузить туда сборки через Assembly.LoadFrom
+ пригодится подвесить на событие CurrentAppDomain.AssemblyResolve свой обработчик, который будет подсовывать нужное

Вопрос только - зачем это надо для фрейвочных сборок? Попытаться запустить программу без установленного фреймворка?)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы