Можно ли в OllyDbg сделать как бы "шаг назад"?

Тема в разделе "WASM.BEGINNERS", создана пользователем _sheva740, 9 июн 2008.

  1. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Ситуация такая - запускаю exe - вылетаю где-то в области адресов загрузки кернела.
    Есть ли возможность в OllyDbg сделать как бы шаг назад и узнать откуда из моей exe -шки
    произошел этот переход?
    Спасибо.
     
  2. Sturgeon

    Sturgeon New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2006
    Сообщения:
    111
    "Серый минус" на цифровой части клавы.
     
  3. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Не поможет минус, т.к. он отменяет шаг(F4,F7 или F8) и не меняет ничего кроме положения курсора. Если под переходом понимается прыжок, то оля пишет в окне доп. информации, под кодом, и рисует стрелочки, если прыжков в это место много. то на них надо ставить бряки, либо запускать программу с помощью Animate Over, тогда уже минус поможет, но будет очень долго
     
  4. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Скорее Animate into
     
  5. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Тогда же по идее в каждую API будет входить?!

    Есть ещё одно решение. Существует плагин-трейсер. Пишет в файл каждую исполняемую команду.
     
  6. Osen

    Osen Рие

    Публикаций:
    0
    Регистрация:
    5 апр 2008
    Сообщения:
    283
    Адрес:
    Париж
    _sheva740
    Да, как раз для этого есть трассировка, она просто записывает в лог каждую команду, которая была выполнена, потом по логу поймешь из-за чего был баг.
     
  7. Sturgeon

    Sturgeon New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2006
    Сообщения:
    111
    Согласен. Серый минус только для трассировки.
    Другой способ. На исключении смотри в стеке адреса возврата. Скорее всего там будет адрес процедуры (call), где и произошло исключение. Ставишь на ней бряк, перезапускаешь программу, доходишь до этой функции, входишь в нее и трассирешь.
     
  8. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Sturgeon
    Да по стеку понятно, просто кажется в SoftIce такое было, не уверен, может и в OllyDbg такое есть.