Приветствую всех. В программулине у контролов адреса обработчиков сообщений выставлены в FFFF05EF, похоже что в обработчике исключений это дело ловится. Оля не даёт поставить бряк на доступ по этому адресу, пишет что адрес указывает в никуда. Прога на VCL, глубоко копать влом. Конечно можно попробовать найти исключение которое за это ответственно, но может ещё что посоветуете?
По-моему, найти исключение -- самое простое. Тем более, что та же Olly позволяет перехватывать исключения. Или же можно поставить точку останова например на KiUserExceptionDispatcher.
Booster Хендлы. Судя по всему, это стандартные обработчики, так что имеет ли смысл туда лезть? Передать управление на такой обработчик можно с помощью CallWindowProc, которой в качестве адреса подсовывается хендл, а как Spy получает настоящие адреса, не скажу.. Слышал только про функцию NtUserDereferenceWndProcHandle, но она вроде не экспортится
Nouzui А куда ещё то лезть? Я полагаю, надо перехватить нажатие на кнопку активации проги, вылезти в основной модуль и посмотреть что там. Для удобства думаю использовать сабкласинг кнопки. Эта прога генерит кучу исключений, плюс делает множество махинаций с помощью SetWindowLong. Когда сабкласировал кнопку, и вызвал старый обработчик полученный через GetWindowLong, то словил исключение. Получается GetWindowLong может возвращать левый обработчик?
Booster не берусь советовать.. имхо, все равно управление в прогу вернется в виде возврата из GetMessage или какаог-нибудь ее аналога вызвать нужно только через CallWindowProc. Это даже когда сам пишешь, безо всяких манипуляций
Спасибо, вылетело из головы. Незнаю, вроде родительскому приходят сообщения - извещения, но сами мессаги вроде идут только соответствующему контролу.
Продолжаю эпопею. В обработчик попал, и после нескольких шагов трассировки, не вылезая из USER32 попадаю на call 77D3B3BF, а по этому адресу - INT 2B. После этого Olly отказывается продолжать трассировку. Это видимо какая-то стандартная фича винды, так как это происходит на всех программах. Что за прерывание, и как тут быть?