![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
А что есть t : string; ???
Анси - строка ? Че-то у меня сомнения. |
![]() |
![]() |
![]() |
#22 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
сомнения по поводу? Вы о чем?
t : string, в которой содержится полный путь к внедряемой DLL. Сейчас попробовал сделать t : ansistring, но не помогло. |
![]() |
![]() |
![]() |
#23 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Плохо знаю делфи, что там за типы данных. Поэтому не могу сказать.
Может кто подскажет. Должен быть классический массив char завершаемый нуль-терминатором, а не класс. Ну так, отследили возвращаемые значения всех функций? Саму длл потестили на загрузку из своего процесса? |
![]() |
![]() |
![]() |
#24 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
вы оказались правы!!!!!
![]() надо было просто заменить @t на pchar(t) и пошла мазута! ![]() но появился второй вопрос. как теперь выгрузить эту DLL из процесса, ведь она там осталась? повторная ее компиляция говорит, что файл занят другим процессом. и что писать в процедуре DllFin ? |
![]() |
![]() |
![]() |
#25 | |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]() Цитата:
Правильно поставленная задача - три четверти решения.
|
|
![]() |
![]() |
![]() |
#26 | ||
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
DiemonStar, спасибо, буду знать.
Цитата:
![]() VirtualFreeEx // освободим выделенный блок Потом также как получали LoadLibrary, получим адрес Freelibrary. И надо бы получить хендл модуля загруженной длл. Можно через CreateToolhelp32Snapshot. Или может через EnumProcessModules? Фиг его знает, что удобнее. И вот точно также: CreateRemoteThread(hProcess, NULL, 0, addressFreeLibrary, dllHandle, 0, NULL); Разумеется, не забываем закрывать хендлы удаленных потоков и открытого процесса CloseHandle. ps Цитата:
Чужой процесс весь в Вашем распоряжении, например сабклассируйте окна, а при DLL_PROCESS_DETACH, снимайте сабклассинг. Последний раз редактировалось EUGY; 05.05.2012 в 14:57. |
||
![]() |
![]() |
![]() |
#27 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() |
![]() |
![]() |
![]() |
#28 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
![]()
Библиотека знает какой код должна выполнить и когда надобность в ней пропадет, знает свой хендл, так пусть сама себя и выгрузит. Переход на FreeLibrary выполнить командой jmp переложив аргументы в стеке таким образом, чтобы управление из функции вернулось в предыдущую функцию минуя адресное пространство в котором расположен код библиотеки т.к. на момент выхода из функции данное адресное пространство уже будет освобождено.
Нет, ну правда..
|
![]() |
![]() |
![]() |
#29 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
даже если я получу список модулей, то как я узнаю, какой из хэндлов принадлежит именно моей DLL? С чем их сравнивать при переборе? Больше конкретики, пжлста.
|
![]() |
![]() |
![]() |
#30 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
![]()
Да прочитай ты уже про эти функции они помимо хендлов много информации возвращают. То что ты делаешь не самообучением называется, а наглым попрошайничеством.
Нет, ну правда..
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Таймер SetTimer и глюки с ним | Jugger | Win Api | 2 | 09.03.2012 20:21 |
Settimer в winx64 не работает, рушит Excel?! | budda999 | Microsoft Office Excel | 9 | 07.01.2012 13:43 |
Отследить изменение курсора в чужих окнах | Lime | Общие вопросы Delphi | 2 | 02.07.2009 19:17 |
SetTimer, KillTimer | NeiL | Win Api | 5 | 05.03.2008 07:37 |