Сейчас на форуме: cppasm, tyns777, dutyfree, asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Перехват запуска службы Windows
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 09 октября 2016 09:35
· Личное сообщение · #1

Доброго дня.

Сторонний софт. Ставит свою службу. Нужна ему для работы. А еще в ней код для валидации ключа.
Вызывается проверка, только при старте службы. Никаких параметров запуска нет.
Служба не сетевая, локальная.

Есть идеи, как перехватить процесс старта, чтобы попасть в выполняемый код проверки ключа?

Погуглил ... Чего-то тухло ...



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 09 октября 2016 09:52
· Личное сообщение · #2

в коде (старта) поставить jmp -2 (зациклить ее) , потом приатачится дебагеров.. востановить оригинальный код.. и дебажить

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....


| Сообщение посчитали полезным: screen66

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

Создано: 09 октября 2016 11:18
· Личное сообщение · #3

--> Link <--



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

Создано: 09 октября 2016 12:00
· Личное сообщение · #4

Вариант с EBFE хорош (и как я о нем забыл. ведь лет десять-двенадцать назад сам это в айсе использовал).
Но на самой проверке вешает намертво машину. Только перезагруз.

image file execution options

А вот это я чего-то недопонял. И как оно работает?



Ранг: 58.0 (постоянный), 13thx
Активность: 0.020.01
Статус: Участник

Создано: 09 октября 2016 12:07
· Личное сообщение · #5

https://support.microsoft.com/en-us/kb/238788



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

Создано: 09 октября 2016 12:11 · Поправил: maddmaks
· Личное сообщение · #6

Все. дошло ...
Не запускает все-равно. Палит по ходу Debugger
Стоит ключ с реестра убрать - стартует.




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 09 октября 2016 12:21
· Личное сообщение · #7

Служба должна уведомить систему, что она удачно запустилась. На это даётся ограниченно времени. После уведомления можно дебажить службу как хотите.

Добавлено спустя 2 минуты
Это к тому, что через Image File Execution Options можно прицепиться дебаггером к службе, но нужно её отпустить до вызова функции уведомления. Это немногое из того, что запомнил про службы.

-----
IZ.RU




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

Создано: 09 октября 2016 12:37
· Личное сообщение · #8

Ну насколько я понял, в дебаггер я же должен попасть, и остановится на точке входа. А такого нет. Тупо наблюдаем, что пытается служба запуститься, а потом видим ошибку и все ...

Ошибка 1053: Служба не ответила на запрос своевременно.



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 09 октября 2016 13:35
· Личное сообщение · #9

maddmaks ну можно ж не ОЕР запуске.. а на функе проверки лицухи джамп вкатить.. и если я правильно помню. там както таймаут ответа службы можно увеличить.. как раз так.. чтоб успеть дебагером прицепится

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 09 октября 2016 16:51
· Личное сообщение · #10

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
"ServicesPipeTimeout"=dword:000xxxx

| Сообщение посчитали полезным: Gideon Vi, VodoleY

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

Создано: 09 октября 2016 17:14
· Личное сообщение · #11

А я же написал. Не на OEP - вешает намертво ...
С таймаутом попробую ...




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 09 октября 2016 19:31
· Личное сообщение · #12

maddmaks пишет:
А я же написал. Не на OEP - вешает намертво ..

Служба случайно не с TLS Callback?

-----
IZ.RU




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

Создано: 09 октября 2016 19:38 · Поправил: maddmaks
· Личное сообщение · #13

DenCoder
Затрудняюсь ответить. Не очень силен. Подскажите, как узнать - скажу.

Почитал ....
Вроде нет.




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 09 октября 2016 19:49
· Личное сообщение · #14

Необходимый признак, что используется TLS - по смещению 0xC0 от сигнатуры PE в хидере 8 ненулевых байт.

Первые 4 байта - rva структуры
Code:
  1. typedef struct _IMAGE_TLS_DIRECTORY {
  2.     UINT32 StartAddressOfRawData;
  3.     UINT32 EndAddressOfRawData;
  4.     PUINT32 AddressOfIndex;
  5.     PIMAGE_TLS_CALLBACK *AddressOfCallBacks;
  6.     UINT32 SizeOfZeroFill;
  7.     UINT32 Characteristics;
  8. } IMAGE_TLS_DIRECTORY, *PIMAGE_TLS_DIRECTORY


Признак, что используется tls callback - AddressOfCallBacks не нуль.

-----
IZ.RU




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

Создано: 09 октября 2016 20:54
· Личное сообщение · #15

Нет. Там пусто. 00 00 00 00

Теперь еще по EBFE на точке входа не останавливается.
И палит все int3 (падает с EXCEPTION). Думаю, что и правленое OEP палит.
BPM вроде нет. Вот блин головняк ...




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 09 октября 2016 21:00
· Личное сообщение · #16

Служба представляет exe? Какие-то dll с ней в комплекте есть? Может, в них дело?

-----
IZ.RU




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

Создано: 09 октября 2016 21:10
· Личное сообщение · #17

Служба - ехе.
Длл есть. Может и в ней. Пока не разобрался.



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 09 октября 2016 21:25 · Поправил: dosprog
· Личное сообщение · #18

DenCoder пишет:
Необходимый признак, что используется TLS - по смещению 0xC0 от сигнатуры PE в хидере 8 ненулевых байт.

Можно проверить в HIEW или --> тулзой <--





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

Создано: 09 октября 2016 21:31 · Поправил: maddmaks
· Личное сообщение · #19

Проверка не в самой службе, а в длл.
Ставлю прыжок на себя, в начале процедуры проверки и пока шаманю, та же шляпа - Служба не ответила на запрос своевременно.

То есть он по ходу проверяет регистрацию сначала, а уже потом сообщает ответ винде. Попробую еще увеличить таймаут.

Добавлено спустя 3 минуты
dosprog
Спасибо. Пригодится. Но я не ошибся - File don't have TLS table.




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 09 октября 2016 23:07
· Личное сообщение · #20

Антидебаг в одной из dll можно обойти, если выполнить трюк с лоадером.
Лоадер цепляется к службе по тому же принципу - через Image File Execution Options. Цель лоадера - внедрить немного кода, чтобы перехватить SetServiceStatus на установке dwCurrentState = SERVICE_RUNNING в структуре SERVICE_STATUS. Так служба уведомляет, что сервис запущен и работает нормально. Если это происходит, то по выходу из SetServiceStatus вызвать MessageBox для того, чтоб приаттачиться дебаггером.

Трюк требует определённых знаний и навыков.

Добавлено спустя 2 минуты
Но если проверка лицензии происходит единожды и в одной из dll на этапе её инициализации, то тогда её можно подгрузить к своему exe, который и дебажить.

-----
IZ.RU




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

Создано: 10 октября 2016 09:10
· Личное сообщение · #21

ну все по ходу чуть-чуть проще. Антидебаг, не знаю, есть или нет, но вот проверка на изменения (по цифровой подписи) у него явная.
Внедрить чуток кода интересная идея. Я вот только совсем про сервисы не бум-бум. Не доводилось еще с ними работать. Этот вот впервые.

Можно как-то заставить его грузится в фиксированное адресное пространство? Указать четкий адрес.
Наполовину бы решило проблему без написания лоадера.




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 10 октября 2016 15:09
· Личное сообщение · #22

maddmaks пишет:
Вариант с EBFE хорош (и как я о нем забыл. ведь лет десять-двенадцать назад сам это в айсе использовал).
Но на самой проверке вешает намертво машину. Только перезагруз

попытайте щастья на вмваре. в довесок можно поставить Process Lasso.

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 397.0 (мудрец), 179thx
Активность: 0.170.1
Статус: Участник

Создано: 10 октября 2016 17:06
· Личное сообщение · #23

а ТС не хотел бы кодес показать или дллку защиты?

-----
...или ты работаешь хорошо, или ты работаешь много...




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

Создано: 10 октября 2016 19:42
· Личное сообщение · #24

Господа. Часть поборол. Все решилось просто патчем WinVerifyTrust.
Осталась одна проблема... на EBFE ужасно грузит проц, что аж мышь залипает на 5-8 секунд.
Где ему приоритет выставить на самый низкий? Что-то не могу найти в морде управления службами.
Может параметр какой в реестре?

Не могу даже попытаться сделать это в Process Explorer. Настолько сильно залипает система.




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 10 октября 2016 20:10
· Личное сообщение · #25

maddmaks пишет:
на EBFE ужасно грузит проц, что аж мышь залипает на 5-8 секунд.

Можете вставить код
Code:
  1. loop:
  2. 6a 64  push 64h; 100 мс
  3. e8 xx xx xx xx  call <kernel32.Sleep>
  4. eb f7  jmp loop


Чуть больше байт - 9, но восстановите.

-----
IZ.RU





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 10 октября 2016 20:12
· Личное сообщение · #26

BfoX

Это было бы просто, тут вся суть в гадании, у кого хрустальный шар крупнее

зы: инфект как есчо один велосипед.

-----
vx




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

Создано: 10 октября 2016 20:18 · Поправил: maddmaks
· Личное сообщение · #27

difexacaw
Ну это не совсем так ...

Добавлено спустя 1 минуту
70d6_10.10.2016_EXELAB.rU.tgz - EXE.rar
хттп://rgho.st/85bll77Hn - DLL

Добавлено спустя 8 минут
DenCoder
Спасибо. Возьму на заметку ...



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 10 октября 2016 20:42
· Личное сообщение · #28

maddmaks пишет:
EBFE ужасно грузит проц, что аж мышь залипает на 5-8 секунд.


maddmaks пишет:
DenCoder
Спасибо. Возьму на заметку ..

не нужно

есть int3



Ранг: 397.0 (мудрец), 179thx
Активность: 0.170.1
Статус: Участник

Создано: 10 октября 2016 21:14 · Поправил: BfoX
· Личное сообщение · #29

что-то сдается мне что тут коммунити решает эту --> задачу <--

Есть еще какой-то сервис по адресу: C:\Program Files\ForwardT Software\SLTMSrvs\FDExtSrvs.exe видимо она проверяет вторую часть лицензии.


или я ошибаюсь

CompanyName : SoftLab-Nsk
FileDescription : FDExt Boards Manager
LegalCopyright : (c) 2010 SoftLab-Nsk. All rights reserved.

зы: в дллке апи hasp/hardlock прилинкованы

-----
...или ты работаешь хорошо, или ты работаешь много...




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

Создано: 10 октября 2016 22:04 · Поправил: maddmaks
· Личное сообщение · #30

BfoX
Не ошибаетесь.
Задача эта.
Но начальный вопрос в другом.

Добавлено спустя 11 часов 17 минут
Объясните мне кто-нибудь волшебство ....
Зацикливаю сервис на точке входа.
Запускаю ...
Присоединяюсь отладчиком.
И все ...

Никакие бряки не срабатывают. Повесели чуток - и "служба не отвечает". Завершились ...
Раз служба не отвечает, значит висит в цикле. Раз висит в цикле, как я не могу остановится внутри этого цикла?


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


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