Выгрузить закачанную DLL от EasyHook

Я пытался внедрить DLL в другой процесс с помощью EasyHook, но когда хост-процесс выключен, EasyHook и другие внедренные DLL все еще находятся в процессе. Кто-нибудь знает, как выгрузить их из целевого процесса?

Благодарю.

2 ответа

Текущая версия Easyhook выгружает внедренную dll при выходе из исполняемого домена приложения. Если вы хотите выйти из внедренной dll из вашей программы впрыска, сделайте возможной некоторую форму связи с введенной dll, чтобы сообщить ей, что пора выходить из домена приложения.

Смотрите эту проблему

Как говорится в учебнике EasyHook 2.6:

Метод Run можно рассматривать как точку входа приложения. Если вы вернетесь с него, ваша библиотека будет выгружена. Но это не совсем так;-). Фактически, ваша библиотека остается в живых, пока CLR не решит выгрузить ее. Это поведение может измениться в будущих версиях EasyHook с использованием CLR Hosting API, но в настоящее время мы просто не знаем об этом!

Поэтому все, что вы можете сделать, это убедиться, что вы правильно вернулись из метода Run, чтобы внедренная DLL больше не была подключена или работала. Он останется там мертвым, пока процесс не будет окончательно завершен. Что касается текущей версии EasyHook (2.7), вы ничего не можете сделать, чтобы принудительно выгрузить ее.

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