Есть программа, нужно изучить, что она делает в одном своём месте. Запустил программу, приаттачился к ней из IDA, поставил там брэкпоинт, в определённый момент вылетает окошко, что произошла хардверная остановка по адресу xxxxx - и указывает адрес моей точки останова. Но потом меня выбрасывает совсем в другое место, почти в конец моего адресного пространства, так, как я понял, как раз что то связанное с отладкой. Но мне то надо посмотреть, куда я иду в своём коде, а не тут. Объясните мне, как мне добиться этого. Спасибо. P.S. Хотел ставить софт-айс, но с виндой какие то проблемы возникли. Да и им, честно говоря, ни разу не пользовался. Поэтому ,хотелось бы просто разобраться с IDA.
Иногда ИДА сглючивает и показывает адрес 0xffffffff вместо текущего. Если это именно так, то набери "g eip"
не, вот должен например быть адрес 0x123456 а показывается что то типа 0x75676543 - именно там устанавливается eip. И выполняется код именно там, а не там где точка останова. А ведь показывается, что именно на ней остановились. Выполняется какой то код, связанный с отладкой. Но что это за код, и как мне перейти имено к отлаживаемому коду. Вообще, Dr.Golova, ты когда отлаживаешь прогу таким способом (приаттачиваешься к исполняющемуся процессу) и ставишь точку останова - то где у тебя останавливается. Если именно на ней, то тогда я ничего не пойму? А если нет, то тогда прошу мне объяснить. Меня это очень мучает
Вот взял OllyDbg - тоже самое. Поставил по адресу 0x1B52346 точку останова, а меня выбросило, но немного не туда - по адресу 0x71B52386. Объясните мне, что это за код? (Это какие то служебные процедуры для отладки?) И где мой код?
А ты можешь посоветовать, как сделать по другому? Если не ставить галку в Hardware breakpoint, то ничего не получится. Он просто не остановится. Хотя стоит галка в Actions/Break. А в случае хардверной остановки, что это за код, и можно ли вернуться как то к моему коду? Помоему нет...