Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Эмуляция команды - остановка службы Добавлено: 06.01.08 15:22  

Автор вопроса:  MadWay
Народ, немогу убить процесс. Сообщение писал не в этом форуме.

http://forum.chertenok.ru/viewtopic.php?t=7417

Если у кого есть соображения по этому поводу напишите.
А то я уже себе всю голову сломал.
Спасибо.

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 06.01.08 16:07
Думаю, из третьего кольца ты его не убьешь - прав не хватит. Только если из ring0. Пиши драйвер. Или можно попробовать найти дроф, который протектит процесс. Сайс тебе в помощь =)

Ответить

Номер ответа: 2
Автор ответа:
 MadWay



Вопросов: 2
Ответов: 4
 Профиль | | #2 Добавлено: 06.01.08 17:55
Так, а если пойти другой доргой. Это приложение все-таки является службой, которая может работать и как приложение. Значит у него есть Event-ы START и STOP.
При событии STOP, являясь службой, он корректно самовыгружается. Может ему как-то команду STOP послать, когда он в режиме приложения. Вобще что делает эта кнопка "Остановка службы", а точнее как? Можно это как то проследить?

Я написал простенькую службу на VbNet, кроме срабатывания event-ов, больше ничего не добился. :(

Ладно, пойду еще копаться.

Ответить

Номер ответа: 3
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 07.01.08 00:46
точно код писать не буду щас. пороешься по МСДН - сам все сделаешь.
примерно так.

hSCManager = OpenSCManager(0, 0, SC_MANAGER_ALL_ACCESS)
hService = OpenService(hSCManager, имя_сервиса, SERVICE_STOP)
ret = ControlService(hService, SERVICE_CONTROL_STOP, ServiceStatus)

вроде примерно так.

Ответить

Номер ответа: 4
Автор ответа:
 MadWay



Вопросов: 2
Ответов: 4
 Профиль | | #4 Добавлено: 08.01.08 23:23
Но ведь этот код будет работать только если приложение работает в режиме службы. Приложение с которым я работаю тоже работает в режиме службы, НО она может запускать и в обычном режиме(хотя наверное это не предусмотрено разработчиками). Важно то, что в выхода из программы нет, её можно выключить только остановкой службы. Так вот, как бы мне вот это:

hService = OpenService(hSCManager, имя_сервиса, SERVICE_STOP)
ret = ControlService(hService, SERVICE_CONTROL_STOP, ServiceStatus)


Только для приложения. Я знаю, что эта функция не предусмотрена. Блин ну если приложение написано как служба, значит можно в нем инициировать СОБЫТИЕ "ОСТАНОВКА СЛУЖБЫ".

Блин, я уверен что есть способ. Какая нибудь API функция, которой указал hwd или pID приложения и она в него команду STOP или START отправляет.

Я бы сам рылся бы, да времени нет. на 1С судьба меня перевела.

Парни, если кто подскажет, с меня ящик пива, если вы в моем регионе или денег на мобилу кину.

Ответить

Номер ответа: 5
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #5
Добавлено: 08.01.08 23:36
Епт.... процесс защищен драйвером из нулевого кольца, вероятнее всего. каким - не знаю, это уж сам ищи. Или же процесс запущен от имени системы. Сначала надо остановить драйвер, а потом уж процесс килять.

Ответить

Номер ответа: 6
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #6 Добавлено: 10.01.08 00:55
может через shell или батник?
типа:
      NET START [service]
      NET STOP [service]
      NET PAUSE [service]
      NET CONTINUE [service]

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам