Сейчас на форуме: Rio (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Можно ли в Ollydbg отловить OEP еще не запущенного процесса
Посл.ответ Сообщение

Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 21 июня 2008 01:48
· Личное сообщение · #1

Ситуация следующая: Есть программка (игрушка, требующая наличия аппаратного H&L), которая запускается через другую программу - 3Danalize. Можно ли сделать так, чтобы Ollydbg остановилась на OEP игры после ее запуска через 3Danalize. Пробовал вручную ставить BP на приаттаченной игре, но не получается. Если SYSENTER в NTDLL выполняется, брейк не срабатывает и игра просто запускается. Ну с этим понятно, новый процесс запускается не под отладчиком. Если приаттачиваю до выполнения SYSENTER, Ollydbg останавливается на RETN в NTDLL с собщением "Attached process paused at ntdll.DbgBreaakPoint". Запускаю RUN - пишет "Running", но ничего не просходит, вернее Ollydbg трудится на 97-98% процессорного времени, но на экране ничего не меняется. Ставлю в дизассемблер модуль игры, BP на месте, никуда не делся. Перехожу на Origin - становится на OEP, в EIP тоже OEP. Нажимаю паузу - останавливается, снова запускаю - выкидывает окно с сообшением "Your program is suspended and can't run. Please resume main thread." Ладно, с этим тоже понятно, процес не был должным образом запущен. А если в наглую прописать на OEP игры INT3 в HEX-редакторе? Тоже не катит.
Может есть простое и обычное решение для такого дела, лежащее на поверхности, и о котором все знают? Или может есть какой нибудь плагин или патч, позволяющий работать одновременно с двумя процессами.



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

Создано: 21 июня 2008 01:59
· Личное сообщение · #2

пропиши на место оеп игры не int 3 а jmp на этот же адрес (EB FE) и после запуска просто приаттачься олькой и поменяй на исходные



Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 23 июня 2008 03:20
· Личное сообщение · #3

Такая комбинация работает, но получается то же самое, что и при аттаче до выполнения SYSENTER. Т.е., Olly останавливается в NTDLL, я запускаю RUN, потом паузу и оказываюсь на OEP. Вроде бы то что надо, но теперь я могу только запустить трассировку и проходить программу пошагово. При попытке запустить выполнение вываливается вышеприведенное сообщение о "suspended".
Еще один момент. Даже при нормально запущенной в Olly игре и при пошаговом прохождении, программа как бы зависает внутри некоторых CALL. Выйти оттуда можно нажав паузу и RUN. Не говорит ли это о наличии какой-то противоотладочной защиты?




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

Создано: 23 июня 2008 06:22
· Личное сообщение · #4

SVLab угу есть такая бага. Выхода 2.
1) Не жать паузу, а поставить бряк на EB FE, жмем F9, после срабатывания бряка восстановить команды. Работает 50/50.
2) Поставить бряк где нибудь ниже, восстановить команды и нажать F9. Всё это проделываем НЕ СТАВЯ ПАУЗУ. Этот работает 80/20.

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




Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 25 июня 2008 20:45
· Личное сообщение · #5

Не работает ни то ни другое. После F9 Olly пишет running, в счетчике команд находится OEP, но BP не срабатывают ни на месте OEP, ни ниже. Я так понял, это баг Olly при аттаче? Пробовал приаттачить другие процессы (Opera, ICC), такая же примерно ситуация.


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


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