Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Выгрузка определенного DLL файла из всех процессовб которыми он используется / 21 сообщений из 21, страница 1 из 1
11.09.2009, 00:17:09
    #36189945
PoMyCb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
Возможно ли с помощью C# .NET, C++, API выгрузить определенный DLL файл из всех процессов, которыми он используется. Если да, то каким способом это можно сделать?

Модератор: Тема перенесена из форума "C++".
...
Рейтинг: 0 / 0
11.09.2009, 00:23:59
    #36189953
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
Вряд ли это стоит делать.

Может какое-то специальное API и есть, но вообще ты должен в каждом процессе, в который подгружена
эта DLL, вызвать FreeLibrary, но вот проблема -- код этой DLL может выполняться, и данные могут использоваться.
...
Рейтинг: 0 / 0
12.09.2009, 18:26:37
    #36192500
PoMyCb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
То есть если код DLL исполняется и используются данные, то FreeLibrary не сработает?
Значит каким то способом нужно остановить исполнение кода?
...
Рейтинг: 0 / 0
12.09.2009, 19:34:54
    #36192523
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
PoMyCbТо есть если код DLL исполняется и используются данные, то FreeLibrary не сработает?
Значит каким то способом нужно остановить исполнение кода?

убить процесс. и FreeLibrary не потребуется.


Исходную задачу излагайте.
...
Рейтинг: 0 / 0
12.09.2009, 20:15:04
    #36192537
PoMyCb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
Для меня поставили задачу: выгрузить определенный DLL из всех процессов, которыми он используется, без убийства этих процессов. У меня возникло сомнение возможно ли это сделать вообще? Если да, то я думаю неважно как эти процессы будут работать после выгрузки DLL, главное, чтобы DLL была выгружена...
...
Рейтинг: 0 / 0
12.09.2009, 21:58:49
    #36192590
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
Если тебе всё равно, что будет с процессами после выгрузки DLL, т.е. главное, чтобы выгрузить,
просто найди все процессы с этой DLL и убей их.
Для "убийства" процесса пользователь, под которым запущен убивающий процесс, должен
обладать правами администратора данной машины.
...
Рейтинг: 0 / 0
12.09.2009, 22:03:08
    #36192592
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
PoMyCb пишет:

> То есть если код DLL исполняется и используются данные, то FreeLibrary
> не сработает?

Сработает, почему не сработает ?
Но код, который выполнялся, тут же грохнится по защите памяти.

> Значит каким то способом нужно остановить исполнение кода?

Никаким ты способом не остановишь.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
12.09.2009, 22:09:04
    #36192595
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
PoMyCbДля меня поставили задачу: выгрузить определенный DLL из всех процессов, которыми он используется, без убийства этих процессов.
Я думаю, что в общем случае это невозможно. И чревато выпадением в "Синий экран" и "kernel panic". И тот человек который ставил такую задачу перед вами должен был осознавать все возможные последствия.

Если сама ТЕХНОЛОГИЯ которую вы используете ПРЕДУСМАТРИВАЛА изначально возможность выгрузки части своего кода из рабочих процессов - это другое дело. Но это частные случаи которые надо рассматривать отдельно. И это не С++. И это вообще не DLL а нечто иное...
...
Рейтинг: 0 / 0
13.09.2009, 00:12:09
    #36192686
PoMyCb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
MasterZiv,

В том то и дело, что задание акцентировалось именно на ВЫГРУЗКЕ DLL, а не в убийстве процесса. Убить процесс намного легче, чем выгрузить DLL...

Может возможно как то одновременно выгрузить из всех процессов?
...
Рейтинг: 0 / 0
13.09.2009, 02:25:19
    #36192772
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
PoMyCb,

Думаю, что одновременно из всех процессов не получится. Нужно перебрать процессы, найти те, которые используют эту длл, внедрить в эти процессы код, который будет выгружать библиотеку (через обычный FreeLibrary). В случае, если процесс использует функции этой длл, он грохнется.
...
Рейтинг: 0 / 0
13.09.2009, 10:17:28
    #36192830
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
x1ca4064В случае, если процесс использует функции этой длл, он грохнется.
Возможно грохнется не сразу, а в момент обращения к коду/ресурсам dll

А если не грохнется, то накойхер эту вообще загружали?
...
Рейтинг: 0 / 0
13.09.2009, 14:44:00
    #36192980
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
mayton пишет:

> Я думаю, что в общем случае это невозможно. И чревато выпадением в
> "Синий экран" и "kernel panic". И тот человек который ставил такую
> задачу перед вами должен был осознавать все возможные последствия.

Да почему же в синий ? Он же не драйвер собирается выгружать.
DLL-и все в адресном пространстве процесса работают, только процесс
(как максимум) грохнется.

Хотя , конечно, задача странная, и в Win32 труднорешаемая традиционно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.09.2009, 14:45:49
    #36192981
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
PoMyCb пишет:

> В том то и дело, что задание акцентировалось именно на ВЫГРУЗКЕ DLL, а
> не в убийстве процесса. Убить процесс намного легче, чем выгрузить DLL...
>
> Может возможно как то одновременно выгрузить из всех процессов?

У тебя очень странное задание. На грани невозможного.
Я бы перед тем, кто его тебе дал, повертел пальцем ему у виска
и послал бы его подальше.
И занялся чем-то более интересным.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.09.2009, 14:59:07
    #36192987
PoMyCb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
Мне это задание дали при трудоустройстве на работу, проверить мои навыки. Видимо поэтому оно такое и странное. Теперь вот я думаю, стоит ли мне парится по этой части программы - с выгрузкой DLL или просто аргументировать тем, к чему это может привести..?
...
Рейтинг: 0 / 0
13.09.2009, 19:11:53
    #36193126
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
Изопропил
Возможно грохнется не сразу, а в момент обращения к коду/ресурсам dll

Да, скорее всего.



А если не грохнется, то накойхер эту вообще загружали?

Ну, например, через параметр hklm\...\AppInit_Dlls можно грузить трояны, средства наблюдения за АП процесса и т.д.
...
Рейтинг: 0 / 0
13.09.2009, 19:16:08
    #36193129
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
PoMyCb,

Если задание учебное - см ответ x1ca4064
...
Рейтинг: 0 / 0
13.09.2009, 21:23:01
    #36193164
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
PoMyCb пишет:

> Мне это задание дали при трудоустройстве на работу, проверить мои
> навыки. Видимо поэтому оно такое и странное.

ЧТобы так вот дали невыполнимое задание -- это как -то странно очень.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.09.2009, 22:51:45
    #36193211
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
MasterZiv,

а что странного - посмотреть на подход к решению, оценку постановки задачи, владение WinAPI в конце концов
...
Рейтинг: 0 / 0
14.09.2009, 04:45:11
    #36193322
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
MasterZiv

ЧТобы так вот дали невыполнимое задание -- это как -то странно очень.



Задание вполне выполнимо (с админскими правами, по крайней мере). Просто тяжело придумать, зачем это делать... (м.б. антивирусы, отладчики?). В качестве тестового очень хорошее - готовые решения найти будет трудно: часто решают обратную задачу - загрузка своего кода в чужой процесс.
...
Рейтинг: 0 / 0
14.09.2009, 09:15:23
    #36193444
PoMyCb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
Буду пробовать реализовать... Может че получиться.
Спасибо всем за мнения и ответы!
...
Рейтинг: 0 / 0
14.09.2009, 11:48:35
    #36193750
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка определенного DLL файла из всех процессовб которыми он используется
Если задание - тестовое, то настрогаешь 2- 3 тестовые программки,
использующие одну тестовую DLL.
Затем внесешь в реестр ключик - признак того, что нужно выгрузить dll из всех использующих ее программ.
Перед вызовом любой функции из DLL - программы обязаны проверять этот ключик.
Нечто типа механизма автоподключения и выгрузки плагинов.

Т.е. крути-верти как хочешь, фантазируй.
Удачи !
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Выгрузка определенного DLL файла из всех процессовб которыми он используется / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]