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

 eXeL@B —› Вопросы новичков —› Ollydbg 110 - при установке брейкпоинта таргет крашится
Посл.ответ Сообщение

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

Создано: 18 ноября 2016 10:19
· Личное сообщение · #1

Здравствуйте.
Ковыряю одну игрушку. Запустил под отладчиком, пытаюсь поставить бряк - жертва падает.
Использовал фантом, с галкой "use another breaks" также падает, правда теперь предлагает отправить отчёт об ошибке.
Что это может значит и как бороться? Где то читал, что подобное поведение бывает, если поток отключен от отладки (CreateThread/SetInformationThread), попробовал OllyAdvanced c соответствующей галкой, не помогло.
Что можно попробовать в этом случае?



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 18 ноября 2016 11:51
· Личное сообщение · #2

Фантик устарел. Юзайте это - ScyllaHide Anti-Anti-Debug plugin for Olly1&2 and TitanEngine.

Бряк в ольке представляет из себя изменение байтов по указанному адресу, на EBFE. Раз жертва падает, возможно мониторится этот участок кода на изменения.



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 18 ноября 2016 12:51
· Личное сообщение · #3

Вообще-то бряк это INT3 (CC).
Если мониторится память на изменения юзайте хардварные бряки.
Правда их использование тоже может палиться.

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


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

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

just_simple

Если проверяется значение в памяти, то нужно трекнуть обращение к этой памяти, не обязательно HWB, олли такое может: break on [R/W/E].

> Где то читал, что подобное поведение бывает, если поток отключен от отладки

Тогда первым делом отладчик лагнет - перестанут в него доставляться события. У вас видимо другое, так как вы не описали его не нормальное поведение.

-----
vx




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

Создано: 18 ноября 2016 18:05 · Поправил: just_simple
· Личное сообщение · #5

TryAga1n
Забыл написать, сциллу я тоже пробовал. Но не помогло... hwbp тоже не заехали.

difexacaw
Значение в памяти не проверяется, краш происходит на бряке вообще везде, причём именно тогда, когда он должен сработать (ни раньше, ни позже).




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

поток отсоединился от отладки игрушка не с защитой случаем навесной?

-----
[nice coder and reverser]





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

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

just_simple

Поставьте останов на ntdll.ZwRemoveProcessDebug и ZwSetInformationThread/<17>. Проще никак не сделать, придётся или кернел дебаггер взять или немного покодить монитор.

-----
vx




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

Создано: 19 ноября 2016 06:18
· Личное сообщение · #8

Hellspawn защита навесная, если я правильно понял термин :D
difexacaw брякнулся один раз на ZwSetInformationThread (вызов из SetThreadPriority), врядли это то что надо..



Ранг: 30.2 (посетитель), 31thx
Активность: 0.060
Статус: Участник

Создано: 19 ноября 2016 10:08
· Личное сообщение · #9

just_simple пишет:
Ковыряю одну игрушку.


что за игрушка?



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

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

Жертва падает сама - TerminateProcess/Thread или рубит отладчик ? Если отладчик, то скорее всего фэйлит OutputDebugString, а вообще сцилла - говно.Я покрывал своего бота вмпротектом второй ревизии и один хер палилосьОна прокатывает только на некоторых вариантах защиты, на других фэйлит только в путь и в некоторых случаях портит память.

-----
TEST YOUR MIGHT





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 19 ноября 2016 13:22
· Личное сообщение · #11

очень похоже, что ковыряют L2 какую-нибудь с целью допилить бота xD тут такое не приветствуется.

-----
[nice coder and reverser]




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

Создано: 19 ноября 2016 13:59
· Личное сообщение · #12

unknownproject в жертве происходит исключение, где конкретно - хз.
Hellspawn именно она, если не приветствуется - то тему под снос.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 19 ноября 2016 14:32
· Личное сообщение · #13

just_simple так брякнуться на ZwSetInformationThread не получится, т.к. защита копирует себе функцию в выделенную память и испольует потом. это если я правильно думаю о защите + vmprotect там.
думаю не по зубам будет, а эелание реверсить отпадет)

-----
[nice coder and reverser]


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

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

Создано: 19 ноября 2016 15:34 · Поправил: just_simple
· Личное сообщение · #14

Hellspawn кто бы меня полгода назад от этой затеи остановил
про копировании функции спасибо, не подумал об этом.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 19 ноября 2016 15:50
· Личное сообщение · #15

just_simple сигнатурно либо руками, ловя чтение/запись кода из ntdll, с памяти либо с диска читает.

-----
[nice coder and reverser]





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

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

Сервисы сходятся в одной точке, при вызове на шлюзе или при возврате. К примеру можно попробовать поставить останов на шлюз(должен быть не wow): KiFastSystemCall с условием в виде номера сервиса (Eax == Id). На возврат посложнее, учитывая что в олли глючат условные точки останова.

Добавлено спустя 2 часа 51 минуту
Hellspawn

> так брякнуться на ZwSetInformationThread не получится

Получится, вот вам семпл.

aede_19.11.2016_EXELAB.rU.tgz - ntrk.rar

-----
vx





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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

-----
[nice coder and reverser]





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

Создано: 20 ноября 2016 14:32 · Поправил: difexacaw
· Личное сообщение · #18

Hellspawn

Почему не выйдет ?

Смотрите возврат из сиссервиса происходит через не контролируемый механизм в юм, в случае sysenter это фикс поинт. В случае WOW это 64 битный слой эмулятора, в этом случае возврат происходит через переключение сегмента на адрес, который был загружен на стек. В случае Int2e возврат на следующую инструкцию и в таком случае мониторить не получится, но этот механизм никогда не используется и в случае WOW вообще не существует. Отследив возврат можно узнать какой сервис был вызван; хотя номер его утерян, но это можно сделать по коду - взять его из стаба, на который выполняется возврат; врядле они морфились. Сам же сервисный шлюз фиксирован - это или sysenter в ntdll или инструкция переключения сегмента, которая адресуется через TEB. Теоретически можно так мониторить, не видно препятствий.

Кстате а где сам семпл с защитой ?

Можно конечно взять старый кернел монитор сервисный, но это пушкой по воробьям

-----
vx




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

Создано: 21 ноября 2016 11:59
· Личное сообщение · #19

difexacaw сэмпл с защитой весит ~8гб, могу конечно скинуть, если не пугает




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

Создано: 28 ноября 2016 12:17
· Личное сообщение · #20

just_simple

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

-----
vx



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


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