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

 eXeL@B —› Вопросы новичков —› Проблема с отладкой сервиса.
Посл.ответ Сообщение

Ранг: 16.1 (новичок), 7thx
Активность: 0.020
Статус: Участник

Создано: 09 января 2012 20:32 · Поправил: Loh_Ushastik
· Личное сообщение · #1

Пробую затащить в Олю сервис, не получается.
После установки программы, он прописывается и с панели инструментов (в службах) с правой кнопки запускается, выбрасывает сообщение (адрес текста месаги - 00522C88) при закрытии которого рубится (это я и хочу обойти).
Посмотрел что параметры с которыми он стартует - "/i /Service", пробую запустить в Оле с этими параметрами - немного (несколько секунд) поработает, сообщение не кажет и рубится снова. Приаттачится к нему могу, но цепляюсь когда сообщение он уже выдал, а хотел как раз обойти его. И вот в тупике. Лицензию программа проверяет как раз в сервисе.
Криптоанализ показал :
Base64 Alphabet
|- Signature 41424344 found at offset 00127DF8 (VA: 00527DF8)
RC4
|- Signature fffefdfc found at offset 001210E4 (VA: 005210E4)
|- Signature fbfaf9f8 found at offset 001210E0 (VA: 005210E0)
|- Signature f7f6f5f4 found at offset 001210DC (VA: 005210DC)
|- Signature f3f2f1f0 found at offset 001210D8 (VA: 005210D8)
но тоже мало чего дало. Дайте совет.

Сам файл сервиса - http://zalil.ru/32457764



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

Создано: 09 января 2012 20:42
· Личное сообщение · #2

я плохо понял, о чём речь, но для отладки сервиса стоит поправить первый байт функции ServiceMain на int3 и аттачиться дебаггером на этом исключении. /*кажется, Терри Липер считает это оптимальным способом*/



Ранг: 16.1 (новичок), 7thx
Активность: 0.020
Статус: Участник

Создано: 09 января 2012 21:00
· Личное сообщение · #3

vptrlx т.е. если я правильно понял - на ЕР зациклить прогу, приаттачится и отпустить?



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

Создано: 09 января 2012 21:11
· Личное сообщение · #4

типа того. на EP или в ServiceMain. Можно не зацикливать, а int3 написать.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 09 января 2012 23:10
· Личное сообщение · #5

https://ssl.exelab.ru/f/action=vthread&forum=1&topic=3252
https://ssl.exelab.ru/f/action=vthread&forum=1&topic=9769
https://ssl.exelab.ru/f/action=vthread&forum=1&topic=11691

-----
Yann Tiersen best and do not fuck




Ранг: 16.1 (новичок), 7thx
Активность: 0.020
Статус: Участник

Создано: 10 января 2012 06:09
· Личное сообщение · #6

vptrlx пишет:
на EP или в ServiceMain. Можно не зацикливать, а int3 написать.

Валится с ошибкой.

PE_Kill пишет:
https://ssl.exelab.ru/f/action=vthread&forum=1&topic=3252
https://ssl.exelab.ru/f/action=vthread&forum=1&topic=9769
https://ssl.exelab.ru/f/action=vthread&forum=1&topic=11691

буду просещятся.



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

Создано: 10 января 2012 09:31
· Личное сообщение · #7

многие сервисы сейчас гибридные, т.е. можно запускать прямо из командной строки, другие же запускают сами себя как сервис после запуска, в любом случае для запуска используется StartServiceCtrlDispatcher и точка входа там другая, нежели чем у основного exe, найти EP можно в структуре к StartServiceCtrlDispatcher в памяти - SERVICE_TABLE_ENTRY+4

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



Ранг: 16.1 (новичок), 7thx
Активность: 0.020
Статус: Участник

Создано: 10 января 2012 09:49
· Личное сообщение · #8

drone пишет:
валится с ошибкой - нужно оригинальные байты восстанавливать, прежде чем отпускать и плагины оставь только самые необходимые [Полезное сообщение]

Да стронг стоял весь в галках процесс тупо вис, оставил лишь 3 норм, но пока желаемого результата не добился




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 10 января 2012 11:39
· Личное сообщение · #9

vptrlx всё правильно сказал. Расскажи подробнее каждый свой шаг при аттаче к процессу

-----
Research For Food




Ранг: 16.1 (новичок), 7thx
Активность: 0.020
Статус: Участник

Создано: 11 января 2012 09:20
· Личное сообщение · #10

Спасибо Vovan666 - "int3 переменим только для ядерных отладчиков, для олли нужно использовать ebfe(т.е. jmp сам на себя), после чего запустить сервис, приаттачится к нему и восстановить оригинальные байты."




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 11 января 2012 16:04
· Личное сообщение · #11

Loh_Ushastik
Угу, только ещё успеть всё отреверсить секунд за 10, пока менеджер сервисов не грохнет нашего подопытного, ибо он не подаёт признаков жизни по мнению менедджера

-----
Research For Food




Ранг: 16.1 (новичок), 7thx
Активность: 0.020
Статус: Участник

Создано: 11 января 2012 16:31 · Поправил: Loh_Ushastik
· Личное сообщение · #12

Если поправить условный переход по адресу 0047C8CE JNZ SHORT 0047C925 на обратный (т.е.) он будет срабатывать - то с панели сервис корректно заводится и корректно останавливается. Но обход этой части кода в результате коррекции:
Code:
  1. 0047C8D0     8B35 94855500      MOV ESI,DWORD PTR DS:[558594]
  2. 0047C8D6     0BF0               OR ESI,EAX
  3. 0047C8D8     6A 00              PUSH 0
  4. 0047C8DA     8935 94855500      MOV DWORD PTR DS:[558594],ESI
  5. 0047C8E0     FF15 10845100      CALL DWORD PTR DS:[<&KERNEL32.GetModu>; kernel32.GetModuleHandleA
  6. 0047C8E6     68 007F0000        PUSH 7F00
  7. 0047C8EB     6A 00              PUSH 0
  8. 0047C8ED     A3 58325500        MOV DWORD PTR DS:[553258],EAX
  9. 0047C8F2     C705 5C325500 0000>MOV DWORD PTR DS:[55325C],0
  10. 0047C8FC     FF15 FC855100      CALL DWORD PTR DS:[<&USER32.LoadCurso>; USER32.LoadCursorA
  11. 0047C902     A3 60325500        MOV DWORD PTR DS:[553260],EAX
  12. 0047C907     C705 64325500 1000>MOV DWORD PTR DS:[553264],10
  13. 0047C911     C705 68325500 0000>MOV DWORD PTR DS:[553268],0
  14. 0047C91B     C705 6C325500 782B>MOV DWORD PTR DS:[55326C],Kernel_O.00>; ASCII "ED780454"

видимо критичен и сервис не может обеспечить поток необходимых программе данных и приложение не видит сервер приложения

Ниже по адресам
0047C970 6A 00 PUSH 0
и
0047C980 6A 01 PUSH 1
если их внопить - то пропадают сообщения о незерегистрированной версии и об окончании триала, НО сервис выбрасывает окно (свое не системная ошибка) о том что сервис отработал с ошибкой и через 10 сек будет остановлен и и перезапущен. Истина где то рядом но где?




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

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

Loh_Ushastik пишет:
Ниже по адресам
0047C970 6A 00 PUSH 0
и
0047C980 6A 01 PUSH 1
если их внопить


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

-----
Research For Food



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


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