EIP = 00000000

Тема в разделе "WASM.RESEARCH", создана пользователем severe44, 25 янв 2005.

  1. severe44

    severe44 New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2003
    Сообщения:
    4
    Такая ситуация.

    Я исследую программу на предмет падений при определенных "неправильных" действиях юзеров. Программа сетевая.

    Запускаю сервер в дебаге ollydbg - юзера по моей просьбе делают "проблему" и ollydbg останавливается на инструкции, в которой произошел сбой. Все замечательно.



    Но столкнулся с ситуацией, когда после останова EIP = 00000000. Ситуация повторяема. Подскажите как узнать тот адрес EIP в котором иснтрукция его испортила? Или, возможно, другую методику поиска проблемного места в коде?
     
  2. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Загляни, чего на стеке валяется (и чуть выше его вершины). Корректный адрес возврата не гарантирую, но адреса, которые использовала программа перед возникновением исключения, там очень часто застревают, если, конечно, речь не о навороченной защите :)
     
  3. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    В олли Ctrl+T выставить "EIP is in range" равным 00000000...00000001, потом Ctrl+F8 и пождать, остановится например на jmp eax (eax=0)
     
  4. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Часто может нехватает параметра для какой-то ф-ции, она убирает и адрес возврата, если в [esp] будет ноль, то вылетит на ret этой ф-ции