Сейчас на форуме: _MBK_, user99, ManHunter (+8 невидимых)

 eXeL@B —› Основной форум —› Спецам по MFC
Посл.ответ Сообщение

Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 23 сентября 2005 04:31
· Личное сообщение · #1

Есть прога, использует сабжевую херь. Вообщем, для создания окна вызывается CDialog:oModal(void). После этого EIP крутиться где-то внутри этой функции и периодически вызывает PeekMessage. Вопрос по существу: как перед входом в DoModal узнать где находиться процедура окна? В каком регистре или стеке передается этот параметр?



Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 23 сентября 2005 05:22
· Личное сообщение · #2

Ответ нашелся. Всем спасибо.

Перед вызовом DoModal в EAX содержится указатель на массив адресов функций. Одна из них будет CWnd::WindowProc(uint,uint,long), подсмотрено в IDA.



Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 23 сентября 2005 05:53
· Личное сообщение · #3

хм, все равно как-то странно. Она вызывается не для всех элементов окна... авторов MFC нужно объявить врагами народа


 eXeL@B —› Основной форум —› Спецам по MFC
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати