Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Контроль повторного запуска DLL


Автор: 22b 30.7.2008, 06:53
Вообщем суть проблемы такова есть DLL которая загружается процессом prog1.exe
сама эта dll-ка после активации  создает поток и в этом потоке вызывает процесс prog2.exe и заносит себя в его адрессное пространство...
Те по сути получается что она заново запускается под proj2.exe и соответственно снова происходит запуск proj2.exe и тд по рекурсии 

Вопрос:
Как наиболее дешевым способом сделать контроль 1 запуска под prog2.exe, хочется смотреть в сторону pipe но надеюсь есть способ красивше .....


Всем thx за внимание!

Автор: Riply 30.7.2008, 07:35
Цитата(22b @  30.7.2008,  06:53 Найти цитируемый пост)
сама эта dll-ка после активации  создает поток и в этом потоке вызывает процесс prog2.exe и заносит себя в его адрессное пространство...
Те по сути получается что она заново запускается под proj2.exe и соответственно снова происходит запуск proj2.exe и тд по рекурсии 


А посмотреть под каким процессом мы находимся и если под prog2.exe,
то не запускать prog2.exe религия не позволяет ?

P.S.
 Чем внимательнее читаешь этот топик, тем больше крепнет уверенность,
 что перед нами в муках рождается новый троян smile

Автор: 22b 30.7.2008, 07:41
Подскажи как смотреть я думал об этом но не додумался и в инете не нашел способа определить родительский процесс подгрузивший длл-ку спасибо заранее...

Автор: Riply 30.7.2008, 07:53
Цитата(22b @  30.7.2008,  07:41 Найти цитируемый пост)
Подскажи как смотреть я думал об этом но не додумался и в инете не нашел способа определить родительский процесс подгрузивший длл-ку спасибо заранее... 


Значит плохо думал или поленился подумать. Попробуй еще раз.
Смотри что получается: внедряться во все процессы умеем, 
создавать нить при загрузке Dll-ки и запускать из нее еще один процесс - умеем.
А вот узнать имя процесса, в котором находимся - не можем.
"Не верю !" (с) Станиславский  smile 

Автор: 22b 30.7.2008, 08:00
да просто ищу наиболее дешевое решение .... дешевое в плане времени.... поэтому у знающих людей и интересуюсь чтобы не убивать на эту проблему день... а то жизнь проходит....
Заранее Вам спасибо....

Добавлено через 12 минут и 54 секунды
разобрался решение было наверху согласен smile)) спасибо за критику

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)