Сейчас на форуме: _MBK_, user99, ManHunter (+8 невидимых)

 eXeL@B —› Основной форум —› Отладка приложений запускающийхся как сервисы.
Посл.ответ Сообщение

Ранг: 15.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 16 ноября 2005 10:52
· Личное сообщение · #1

Может кто подскажет как это делается??? А то в OllyDbg запускаю приложение. На точки останова оно не реагирует хотя приложение запустилось в памяти, и вивсит как Com-сервис. OllyDbg остановилась на модуле ntdll (вернее в CPU main thred).



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 16 ноября 2005 11:42
· Личное сообщение · #2

Мне кажеться Олькой не получится

-----
Подписи - ЗЛО! Нужно убирать!




Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 16 ноября 2005 12:08
· Личное сообщение · #3

Драйвера, да и сервисы по мойму можно отлаживать только под ринг0 отладчиком - SoftIce например

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 45.7 (посетитель)
Активность: 0.050
Статус: Участник
EBFE

Создано: 16 ноября 2005 12:09
· Личное сообщение · #4

да ну вас можно олькой сервисы отлаживать, только гемморойными путями ;)



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 16 ноября 2005 12:16
· Личное сообщение · #5

dMNt
Хоть пояснил бы тогда человеку какими

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 15.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 16 ноября 2005 12:27
· Личное сообщение · #6

А правада геморойными то как можно в ПМ....
В софтайсе тоже пробовал, срабатывает бряк нам мессейджбокс, но если жать ф12 то управление передается приложению, а не возвращается на функцию вызывающую этот самый мессейджбокс...



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 16 ноября 2005 12:44 · Поправил: Step
· Личное сообщение · #7

Tupis
Сервис в смысле служба или в смысле COM?
Из процесса служба за один заход не делается. Как правило сначала идёт запуск процесса, который сам себя запускает ещё раз но уже как службу. Разница состоит в реакции на сервисную функцию. Если механизм объекта твоего внимания именно такой, то получается что бряк в адресном пространстве базового а не дочернего процесса. Но опять непонятка: тебе что Оля не говорит о завершении процесса? Два процесса висят в памяти?

Tupis пишет:
но если жать ф12 то управление передается приложению, а не возвращается на функцию вызывающую этот самый мессейджбокс...

Чего? Функция то находится в приложении.



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 16 ноября 2005 12:56 · Поправил: Smon
· Личное сообщение · #8

Step пишет:
Чего? Функция то находится в приложении.

Нет в приложении никаких функций (кроме уникальных(самопальных) естесно) а есть только вызовы функций из системных библиотек =)

Step пишет:
а не возвращается на функцию вызывающую этот самый мессейджбокс...

Должно возвращаться как раз на следующую после вызова функции строку =)

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 15.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 16 ноября 2005 13:04
· Личное сообщение · #9

Smon пишет:
Должно возвращаться как раз на следующую после вызова функции строку =)

В том то и дело что должно, но возвращает управление приложению....
Step пишет:
Но опять непонятка: тебе что Оля не говорит о завершении процесса? Два процесса висят в памяти?

В памяти висит два процесса. Оля пришет в строке сообщений "process terminated, exit code0"
Причем если перезапустить отладку через ctrl f2, то процесс (приложение) остается в памяти



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 16 ноября 2005 13:08
· Личное сообщение · #10

Tupis
Попробуй приаттачиться к оставшемуся приложению =)
Или пишет что уже приаттачен ?

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 15.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 16 ноября 2005 13:12
· Личное сообщение · #11

Smon пишет:
Или пишет что уже приаттачен ?

Ага говорит что низя уже приаттачен..



Ранг: 45.7 (посетитель)
Активность: 0.050
Статус: Участник
EBFE

Создано: 16 ноября 2005 13:18
· Личное сообщение · #12

ну я делал просто - регистрируешь ольку как jit, патчишь в сервисе нa OEP CCh
запускаешь, потом меняешь как было и все



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 16 ноября 2005 13:20
· Личное сообщение · #13

Tupis пишет:
В том то и дело что должно, но возвращает управление приложению....

Возврат управления приложению - это и есть следующая инструкция после вызова API. Ты видимо имеешь в виду, что отладчик теряет контекст процесса?
Детальней, что в окне Айса (нижнем правом углу светится, какой процесс) а что видно по команде ws? Откуда шёл вызов?

Для подобных вещей, мелкомягкие создали спец.настройку реестра. Можно запустить отладчик при запуске указанного приложения в автомат.режиме. (Ну прямь для троянов). Это создавалось для отладки служб.
Бери Айс, ставь брейк, и ...
Есть несколько способов Олей отлаживать сервисы, но лучше без фанатизма. Хотя, возможно я не совсем объективен так как не большой любитель Оли.



Ранг: 15.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 16 ноября 2005 13:24
· Личное сообщение · #14

Step пишет:
(нижнем правом углу светится, какой процесс)

Он говорит что находится в модуле Users32....
Команду ws не пользовал попробую гляну....



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 16 ноября 2005 14:24 · Поправил: Step
· Личное сообщение · #15

Tupis
А вообще dMNt дело говорит. Ставишь Int3 на Original Entry Point а дальше в Оле bp или bpx. По моему это самый простой способ для дебагера 3-его кольца , правда если Оля настроена на один экземпляр (запуск в единичном варианте), то будет чуток не удобно.
Но лично я, свои сервисы отлаживал в Айсе и MSVC++.

P.S. Есть утилита запуска процесса с правами службы. Так что любой дебагер поддерживающий Attach можно подсоединить.

А можно на этот сервис посмотреть? Ты прям заинтриговал. И ещё ты случайно не на Armadillo наткнулся ;)



Ранг: 15.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 16 ноября 2005 15:18
· Личное сообщение · #16

Да не, никакой армадилы там нету чистый код на сях ++ Просто приложение попросили глянуть на предмет отучивания от жадности триал но с возможностью регистрации... Ладно буду копать дальше спасибо за советы кстати уже не первое приложение мне попадается, что запускается как сервис....



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 16 ноября 2005 19:56
· Личное сообщение · #17

не первое приложение мне попадается

всем известный аутпост, к примеру



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 16 ноября 2005 20:53
· Личное сообщение · #18

Если не ошибаюсь, в книжке "Программирование для Windows 2000" (автор А. Вильямс) описано как службы под отладчиком запускать. В реестре что-то прописывать надо. Точнее не помню, буду дома гляну...



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 17 ноября 2005 11:55
· Личное сообщение · #19

Вот собственно:

Создать ключ "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\SERVICE.EXE"

SERVICE.EXE - имя файла службы

В нем создем строковый параметр Debugger, значение которого - полный путь к отладчику.

Способ работает только для служб, которые запускаются после завершения загрузки системы и настроены на взаимодействие с пользователем (SERVICE_INTERACTIVE_PROCESS).


 eXeL@B —› Основной форум —› Отладка приложений запускающийхся как сервисы.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати