Такая ситуация. Я исследую программу на предмет падений при определенных "неправильных" действиях юзеров. Программа сетевая. Запускаю сервер в дебаге ollydbg - юзера по моей просьбе делают "проблему" и ollydbg останавливается на инструкции, в которой произошел сбой. Все замечательно. Но столкнулся с ситуацией, когда после останова EIP = 00000000. Ситуация повторяема. Подскажите как узнать тот адрес EIP в котором иснтрукция его испортила? Или, возможно, другую методику поиска проблемного места в коде?
Загляни, чего на стеке валяется (и чуть выше его вершины). Корректный адрес возврата не гарантирую, но адреса, которые использовала программа перед возникновением исключения, там очень часто застревают, если, конечно, речь не о навороченной защите
В олли Ctrl+T выставить "EIP is in range" равным 00000000...00000001, потом Ctrl+F8 и пождать, остановится например на jmp eax (eax=0)
Часто может нехватает параметра для какой-то ф-ции, она убирает и адрес возврата, если в [esp] будет ноль, то вылетит на ret этой ф-ции