Loger > но писать/читать туда можно через SetClassLong/GetClassLong И класс окна сменить можно, в тот момент когда окно нах-ся на desktop'е ?? %)
Код (Text): :hwnd explorer Handle Class WinProc TID Module 010090 tooltips_class32 719CBAA8 7E8 comctl32 0201AC tooltips_class32 719CBAA8 7E8 shell32 0901E2 BaseBar 7757CD4B 7E8 shell32 BB0244 MenuSite 7757CD4B 7E8 shell32 0305D6 SysPager 7195DB22 7E8 shell32 0205CE ToolbarWindow32 7196BC2D 7E8 shell32 : : :hwnd -x 010090 Hwnd : 010090 (BC64A630) Class Name : tooltips_class32 Module : comctl32 Window Proc : 719CBAA8 Win Version : 0.00 Parent : 010014 (BC6406E8) Next : 0304EA (BC6DC990) Owner : 03006C (BC649650) Style : Window Rect : 222, 708, 586, 738 (364 x 30) Client Rect : 1, 1, 363, 29 (362 x 28) : : :dd BC64A630 0010:BC64A630 ???????? ???????? ???????? ???????? ................ 0010:BC64A640 ???????? ???????? ???????? ???????? ................ 0010:BC64A650 ???????? ???????? ???????? ???????? ................ 0010:BC64A660 ???????? ???????? ???????? ???????? ................ : : :addr explorer :dd BC64A630 0010:BC64A630 00010090 00000003 E18478A0 812FC038 .........x..8./. 0010:BC64A640 BC64A630 00000400 80000300 200800A8 0.d............ 0010:BC64A650 84800003 71950000 00000000 BC6DC990 .......q......m. 0010:BC64A660 00000000 BC6406E8 00000000 BC649650 ......d.....P.d. И позыркай ещё "USER Object Table" в "Using SoftICE".
Недавно помнишь говорили о превращении обычного потока в GUI (когда появляеться очередь сообщений и т.д.) , так вот при первом превращении ядро выделяет участок хипа в нашем процессе и этот участок уже заполнен всякой х-ней , в том числе и предопределёнными классами окон . И при инициализации common controls (InitCommonControlsEx,icce) регистрируються новые классы (смотря что проставили - ICC_COOL_CLASSES,ICC_USEREX_CLASSES и т.д.) , информация о них тоже записуеться в тот участок . Four-F Не видел , что ты уже ответил . Это я про юзер моде говорил , что смог увидеть
Хе , в том участке лежат классы окон от Олли (можно юзать вместо IsDebuggerPresent , ещё например лежит Windows Commander , хотя он у меня не запущен . _779734437__memory.png
Four-F Это мало что говорит, я надеялся что есть какие-нибудь "полу"документированные структуры в которых он(класс окна) содержится, например функция GetClassName куда-то там по адресу fs:[18] и т.д. лезет за классом, кажется, я пристально ещё не исследовал.
Asterix Так я за ней и следил Туда она и лезет . Только вот в том участке свиду такой бардак , надо бы узнать в каких структурах там это всё лежит .
И ещё интересно, что будет если, всё-таки, удастся обнаружить этот класс окна и пропатчить его прямо в памяти, т.е. например что будет с тем окном, которое в этот момент нах-ся на desktop'е если мы таким варварским способом сменим его класс ?
Вот перегрузился смотрю тот участок намного чище , т.е. там собираються все окна (и менюхи кстати) за весь сеанс работы виндовз . Это может быть полезно . Интересно под w9x тоже самое ?
Не пользуюсь я SoftIce-ом , не умею и пока лень ставить Сдаёться мне , что ядро динамически проецирует какой-то свой участок\участки на все GUI процессы (имею ввиду на их юзер пространство) , может быть такое ? Это наверное эти , USER GDI объекты создаваемые HMAllocObject (из доки к айсу) ?
Asterix, я не совсем верно понял вопрос. Самому лень смотреть, но в исходниках встречается функция InternalRegisterClassEx и структура CLS. [ bogrus: Сдаёться мне, что ядро динамически проецирует какой-то свой участок\участки на все GUI процессы (имею ввиду на их юзер пространство), может быть такое ? ] Может. Только, IMHO, логичнее запихивать всё это в ядро и оттуда тягать. А то какой-нить ур... нагадит из юзера, что тогда?