mayoroff |
Отправлено: 05.04.2005, 15:46 |
|
Не зарегистрирован
|
Есть следующая задача: необходимо отследить создание процесса и блокировать его запуск, если оно запущено не из моей программы. Я в этом деле совершенный чайник, был бы очень признателен, если бы вы меня направили на верный путь решения проблемы. Заранее спасибо! |
|
62316e |
Отправлено: 05.04.2005, 17:30 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 38
|
1) TServiceApplication
2) Hook
И перерехвачиваеш поиск на форуме
|
|
mayoroff |
Отправлено: 05.04.2005, 17:43 |
|
Не зарегистрирован
|
QUOTE (62316e @ 05/04/2005, 17:30) | 1) TServiceApplication
2) Hook
И перерехвачиваеш поиск на форуме |
Честно говоря — обыскал весь форум, но ничего так и не нашёл. Если Вам не трудно, дайте пожалуйста ссылку... |
|
Gedeon |
Отправлено: 05.04.2005, 18:38 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
TServiceApplication тут ни при чем, действительно нужен перехват функции CreateProcess, задача не тривиальная, где-то видел не помню, получить список процессов, запущенных в системе достаточно легко
($BCB)\Examples\Apps\ProcView
Прибитие процесса
тут
еще о них же
тут и тут
По поводу перехвата надо читать, сейчас просто нет времени, по срокам сдачи проекта д. освободиться к концу недели, а как получится не знаю.
И вот еще нашел тут
Отредактировано Gedeon — 05/04/2005, 16:42
|
|
Ajgor |
Отправлено: 11.04.2005, 15:41 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 23
|
Есть не очень красивый но довольно простой способ. Ключ в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows. Если там прописать dll, то она будет грузится во все процессы. В dllmain проверяеш что угодно (при загрузке или выгрузке). |
|
Vlad |
Отправлено: 12.04.2005, 10:32 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
Есть интересная статья http://rsdn.ru/?article/db/Hierarchy.xml, может что нибудь от туда пригодится. |
|
Ajgor |
Отправлено: 12.04.2005, 15:26 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 23
|
А при чём тут эта статья? |
|
Vlad |
Отправлено: 12.04.2005, 16:03 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
Извиняюсь не ту ссылку бросил!
http://rsdn.ru/article/baseserv/IntercetionAPI.xml
Перехват API-функций в Windows NT/2000/XP
Автор: Тихомиров В.А.
Источник: RSDN Magazine #1
Опубликовано: 11.11.2002
Исправлено: 13.03.2005
Версия текста: 1.0
Что такое «перехват API-функций»
Метод 1. Перехват API непосредственной записью в код системной функции.
Метод 2. Перехват API через таблицу импорта.
Внедрение кода в чужой процесс в Windows NT
Внедрение 1
Внедрение 2
Как отлаживать такие выкрутасы
Отладка кода загрузчика
Отладка функций, выполняющихся при старте DLL
Отладка функций — двойников, получающих управление при вызове перехваченных API функций
Тестирование
|
|
Guest |
Отправлено: 15.04.2005, 10:52 |
|
Не зарегистрирован
|
не надо усложнять себе жизнь
Запускаешь свою прогу с таймером который каждые 5-10 секунд проверяет запущен ли процесс и убивает его. Но запуская из твоей проги процесс запоминаещь его PID, и в последующем не трогаещь.
Вот и все и нет проблем!
Нужен код определения PID сообщи! |
|
Gal |
Отправлено: 15.04.2005, 10:59 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
Да и еще раньше регисрировался автоматом теперь через раз. Не обратил на это внимание.
А усложнять программу можно до бесконечность, но окончательной весии так можно и не получить. |
|
Ajgor |
Отправлено: 15.04.2005, 16:31 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 23
|
QUOTE (Guest @ 15/04/2005, 10:52) | не надо усложнять себе жизнь
Запускаешь свою прогу с таймером который каждые 5-10 секунд проверяет запущен ли процесс и убивает его. Но запуская из твоей проги процесс запоминаещь его PID, и в последующем не трогаещь.
Вот и все и нет проблем!
Нужен код определения PID сообщи! |
Тут я не совсем согласен. Задача состоит в том чтобы проследить создание процесса. Если проверять по таймеру с интервалом например в те же 5-10 секунд список процессов, то так ты сможеш определить, что процесс уже работает < 5-10 секунд но не сам факт его запуска. А если это вирус то за 5-10 секунд можно сделать многое... Надо именно перехватить его запуск. Как ето сделать читай выше (например подменить что-то типа CreateProcess). |
|
Gal |
Отправлено: 15.04.2005, 17:40 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
В принципе Я понял, что "mayoroff" неопходимо контролировать запуск какого либо процесса не из свое программы, а из своей можно. Так причем здесь вирус! |
|
Ajgor |
Отправлено: 15.04.2005, 18:55 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 23
|
При том, что пока по таймеру ты будеш проверять список процессов процесс уже запустится и некоторое время (пусть даже очень маленькое) проработает. Я так понял его надо в корне рубить при попытке запуска. |
|
Gal |
Отправлено: 16.04.2005, 12:33 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
Наверное ты всетаки прав, но я предложил простое свое решение, которое уже воплотил в жизнь.
И нареканий пока нет.
а тестировал я оконных прогах, так даже окно не появлялось. |
|