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

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

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

Создано: 21 января 2012 19:27
· Личное сообщение · #1

Вобщем все выглядит так, есть участок кода, на начале которого я поставил брейкпоинт? При нажатии F9 программа перепрыгивает туда из 4-х разных (ну может два раза и из одинаковых) мест. Явных переходов на начало этого кода нет. Как узнать, из какого места программа туда попадает? Пробовал трассировать пошагово, но палец устал




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 21 января 2012 19:35
· Личное сообщение · #2

Kuzya69, если переходит с помощью call - то гляди стек, иначе есть трассировка в оли автоматическая, смотри в меню Debug есть Trace Into и Trace Over(возможно я очяптался). Но сначало Set condition, чтобы он знал когда остановится.



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

Создано: 23 января 2012 20:45 · Поправил: Kuzya69
· Личное сообщение · #3

Dart Sergius Благодарю, помогло. Трассировка вскрыла все завуалированные переходы.
Но возникла очередная загвоздка. Оказалось, что нужное значение в регистре EDI появляется из стека командой popad, и явно в регистрах РОН не расчитывается. В журнале трассировки не вижу ни одного похожего байта. Можно как-то отследить момент появления этого значения в стеке?




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

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

Kuzya69, запусти пару раз прогу, если нужное значение на одном и том же месте, то в set condition
dword ptr :[адрес где должно появится значение]==значение
и снова трассируем



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

Создано: 23 января 2012 21:18 · Поправил: Kuzya69
· Личное сообщение · #5

Оно даже внутри одного запуска программы, появляется 4 раза и всегда по разным адресам стека.
Но значение всегда одно и то-же.




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 23 января 2012 22:32 · Поправил: Dart Sergius
· Личное сообщение · #6

значит лови одно из них. Например первое - если местоположение в стеке его меняеться от запуска к запуску, выбери другой.
Иначе ревёрсинг процедуры, можно с помощью IDA.



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

Создано: 24 января 2012 12:07 · Поправил: Kuzya69
· Личное сообщение · #7

Начал отлавливать пересылки и изменения в стеке. И изменил содержимое регистра, чтоб убедиться что на выходе изменится именно он. И программа вывалилась в "терминейтед". Такое и раньше случалось. Перезапустил - опять терминейтед. Удалил файлы истории ".udd" и ".bak". Не погло, а раньше помогало. Откатился на день назад восстановлением системы, тоже не помогло. Настройки Олли те-же, что и раньше были (включен фантом первая галка). Пишет "Thread 000013E4 terminated, exit code 0". Модуль ntdll. Я так понимаю, что меня "программа раскусила? А как мне ее опять обойти? Может надо как-то в ини-файле Олли переменить название (где-то видел но не помню где эту инфу), или еще чего?



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

Создано: 24 января 2012 18:32 · Поправил: tundra37
· Личное сообщение · #8

Kuzya69 Программа могла изменить какой-то свой файл и теперь не работает. Ищи в ней причину. Могла в реестре что-то попротить в своей ветке
Ну и можно посмотреть почему она терминейтид... Обратный дизассемлер



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

Создано: 24 января 2012 19:22 · Поправил: Kuzya69
· Личное сообщение · #9

Так сама-то программа работает, а вот из Олли вываливается.
И что значит "обратный дизассемблер"? Это опять трассировать? Или придется ИДУ применять?
Просто ИДУ я совсем пока не знаю.
Да я и Олли-то еще не изучил. У себя в своей папке прога не могла накосячить, потому-что она запускается обыкновенно как портабле версия. Видимо все-таки реестр или системные папки. А как подменить "название Олли", или хэндл процесса, или по чему еще там программа может Олли определять?
А вот еще забыл дописать. Олли подключается к процессу,программа останавливается на ЕР, а вот при следущем нажатии F9 вываливается из Олли, и продолжает работать без Олли.




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

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

Кстати фантом ща уже малясь устарел. Если дровина нужна(применяется RDTSC? ) то можно глянуть StrongOD, только вместе их драйвера не включай
TerminateThread смотри когда вызывается.
Модуль ntdll - потому что это последний модуль вызванный в user-mode до уничтожения потока.( Если хочешь проверить там как раз вызывается sysenter)



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

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

Так сама-то программа работает, а вот из Олли вываливается.
Ну это еще проще - скрутил настройки Олли.
Про "обратный": смотришь откуда ntdll вызвали, смотришь почему. По дизассемблеру придется смотреть "назад". Из-за этого термин такой.



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

Создано: 24 января 2012 20:29
· Личное сообщение · #12

Dart Sergius В смысле, вместе драйвера не включать? Фантом и стронгОД вместе, или внутри стронга галки по одной ставить? И еще вопрос, достаточно-ли, при использовании СтронгОД просто отрубить галки в Фантоме, или нужно обязательно длл фантома удалить?
tundra37 Нет Олли я не крутил, да и проверил, настройки те-же. К тому-же у меня несколько Олли, и все они одновременно, не заработали с этой прогой. Да к тому-же еще и другие версии этой проги тоже перестали подключаться к Олли.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 24 января 2012 20:37
· Личное сообщение · #13

Kuzya69
Подключаться? В смысле аттач (DebugActiveProcess) или запуск из под Олли (CreateProcess (...,DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS,...)) не работает?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 24 января 2012 21:17
· Личное сообщение · #14

Kuzya69, всмысле что если включён драйвер в фантоме - то должен быть выключен в других плагинах драйвер.
Только галки.



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

Создано: 24 января 2012 22:01
· Личное сообщение · #15

ARCHANGEL Запуск из под Олли вообще с самого начала не проходил, пока не попробовал аттач с включенной первой галкой у фантома.
Dart Sergius Спасибо попробую. Позже отпишусь.



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

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

Ну в общем Стронг ОД действительно помог. Но все равно программа переодически вываливается в терминайтед. Но удаление ".udd" и ".bak" спасает. Может это быть из-за неверно установленных Б-Поинтов? Тоесть я ставлю куда-нибудь брейкпоинт программа вываливается. Удаление самого БП уже не помогает, удаляю историю, ставлю БП в другое место и прога продолжает работать, пока опять не "угадаю убивающее место" для БП. И где можно прочесть про все галки в СТРОНГ-ОД?




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

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

мб программу выложишь?



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

Создано: 27 января 2012 20:03
· Личное сообщение · #18

Да прогу-то выложу, только без шнура в котором серийник и лицензия тест не пройти. А я и пытаюсь понять каким образом высчитывать правильно серийник и лицензию. Чтоб шнур проходил регистрацию. Правда сам нахожусь в самом начале.
Выложить ехе-шник или инсталлятор? Это ВЦДС от Росс-Теч. И сюда ничего не влезет, больше 500кб и ехе-шник и инсталлятор. Куда выложить лучше?




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 27 января 2012 22:57
· Личное сообщение · #19

Kuzya69, файлообменников куча , выбирай любой(только не deposit:s6
Про галки в стронге - по названиям там всё понятно.



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

Создано: 28 января 2012 13:25
· Личное сообщение · #20

Так и не понял чего заливать? Ехе или инсталлер. Залил оба.
http://zalil.ru/32594677
Вы говорите "про галки-понятно по названиям", но я то начинающий. Мне понятна только первая галка.
А вот например что делает эта галка я не знаю "AdvEnumMode"?
Да и остальные смысл вроде немного понятен, но сам процесс, который она делает, не особо ясен.
Хотяб хелпик какой рядом с ним лежал в текстовом файле.




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 28 января 2012 18:02
· Личное сообщение · #21

ты протектор снял?




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 28 января 2012 18:32 · Поправил: ARCHANGEL
· Личное сообщение · #22

А вот например что делает эта галка я не знаю "AdvEnumMode"

Advanced Enumerate Mode - скрывает олли от перечисления процессов, т.е. от всяких NtQuerySystemInformation.
Patch float - патчит баг с плавающей точкой. Уже много раз проскакивали обсуждения на эту тему.
Adv Ctrl+G - расширяет стандартный функционал этого окна, что позволяет выбирать режимы VA/API, RVA or Offset.
ShowBar - в левом нижнем углу появляется командная строка.
Break on Tls - позволяет остановиться на Tls Callback ещё до ЕР.
Load Symbols - позволяет подгружать отладочные символы.
Kill BadPe Bug - исправляет баг ольки, при котором она на нормальные файлы с подкорректированными ручками Number of RVA and Sizes пишет, что файл невалидный.
Anti Anti-attach - ну и так ясно
Skip some exceptions - аналог custom exception handler фантома
Remove Ep one shot - не ставит бряк на ЕР, которое читает из заголовка
AutoUpdate - а как вы думаете?

-----
Stuck to the plan, always think that we would stand up, never ran.


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

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

Создано: 28 января 2012 19:09 · Поправил: Kuzya69
· Личное сообщение · #23

Dart Sergius Я исследую зону после нажатия клавиши "Тест", исследую все проверки серийников, ЧИП-ИД, и лицензионника. Там все и без снятия протектора выявляется, если не считать косяков с терминейтед. А протектор я еще не научился снимать.
ARCHANGEL Спасибо, полезный хелпик. AutoUpdate, кстати пытался обновиться, но больше 42% не прошло ни разу. Ну может ВайФай виноват.
А кстати можно вместо КоммандБара из Стронг ОД, использовать КоммандБар из Олли ? Не будет конфликтов?
И нет-ли каких "запрещенных" комбинаций галок, не обязательно внутри СтронгОД. Например: "нельзя вместе использовать галку "А" из Стронга с галкой "В" из ОллиДамп".




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

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

лови тогда версию последнюю вроде.
тебе описание дали, значит смотри чтобы "галочки не делали одно и тоже. Лучше от этого не будет.

7083_28.01.2012_EXELAB.rU.tgz - StrongOD.dll

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

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

Создано: 29 января 2012 03:06 · Поправил: Kuzya69
· Личное сообщение · #25

Я или не могу сообразить, как правильно поставить условие трассировки, или меня программа "поймала в бесконечный цикл".
В стеке по определенному адресу (всегда один и тот-же) появляется нужное значение, оно там появляется уже более 200 раз и пропадает, причем появляется из разных мест. Я трассирую кусок от одной точки (где для расчета этого значения данные только что считались в память), до того, где это значение уже точно расчитано.
Как отследить именно последнее появление этого значения в стеке при трассировке? Или хотя-бы заставить трассировку выводить вместе с регистрами еще и содержание нужного адреса стека ?
Условие "byte ptr ss:[0012D19A]==29", при трассировке очень часто останавливает трассирование и еще никак не дошло до конца исследуемого участка.


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


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