![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выгрузить чужую DLL из памяти программным путем [Win95/98, WinME]
DSKalugin © (2004-11-02 17:26:00)Наблюдается глюк при установке фокспрошной программы. Она пишет несовпадение файла ресурсов/версий и подыхает. В памяти остаются невысвобожденные библиотеки. Я не могу удалить их с диска т.к. они заняты системой. Не хочется по 3 раза перегружаться пока установишь каждому программу.
Как выгрузить чужую DLL из памяти по имени файла?
Игорь Шевченко (2004-11-03 22:35:00) [21]Если программа подыхает, то DLL в ее памяти не остается и на диске ей не держится.
Что-то в консерватории не так.
kaZaNoVa (2004-11-03 22:02:00) [22]VMcL © (03.11.04 21:59) [3]
а методом CreateRemoteThread можно ?
я как-то пробовал .. BSOD очень часто был ... обидно ..
VMcL (2004-11-03 21:59:00) [23]>> DSKalugin © (03.11.04 13:43) [2]
Если исходный процесс - GUI, то в принципе попробовать можно, но боюсь доиграешься до BSOD или чего-нить такого.
1. Узнаёшь HInstance нужной DLL в чужом ВАП.
2. Внедряешь хуком свою DLL и передаешь ей HInstance из п. 1.
3. Будучи в уже в чужом ВАП с помощью своей DLL делаешь FreeLibrary(<ТойСамыйHInstance>).
DSKalugin (2004-11-03 13:43:00) [24]Process XPпоказывает используемые ДЛЛ каждого процесса. Это верно, но выгружать их не позволяет. Разве что только сам процесс со своими всеми зависимыми делами.
Во первых речь о системах 9х, на NT такого не бывает. А там я удаляю программу Setup.exe путем ctrl+alt+del и "завершить задачу"
Выходит: процесса нет уже, а ДЛЛ висеть продолжает.
Вобщем Process XPтут совсем не причем. Я спрашивал про программный метод.
Cobalt (2004-11-02 19:56:00) [25]Значит прога не подохла, раз файлы держит.
А кто держит - воспользуйся ProcessXP от SysInternals.