Где в системе хранится информация о классе окна?

Тема в разделе "WASM.WIN32", создана пользователем Asterix, 19 сен 2004.

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
  2. Loger

    Loger New Member

    Публикаций:
    0
    Регистрация:
    28 авг 2003
    Сообщения:
    71
    Адрес:
    Minsk
    Где находится не знаю, но писать/читать туда можно через SetClassLong/GetClassLong
     
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Loger

    > но писать/читать туда можно через SetClassLong/GetClassLong



    И класс окна сменить можно, в тот момент когда окно нах-ся на desktop'е ?? %)
     
  4. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Код (Text):
    1.  
    2. :hwnd explorer
    3. Handle    Class                         WinProc    TID  Module
    4.  010090    tooltips_class32             719CBAA8   7E8  comctl32
    5.  0201AC    tooltips_class32             719CBAA8   7E8  shell32
    6.  0901E2    BaseBar                      7757CD4B   7E8  shell32
    7.   BB0244    MenuSite                    7757CD4B   7E8  shell32
    8.    0305D6    SysPager                   7195DB22   7E8  shell32
    9.     0205CE    ToolbarWindow32           7196BC2D   7E8  shell32
    10. :
    11. :
    12. :hwnd -x 010090
    13.     Hwnd          : 010090    (BC64A630)
    14.     Class Name    : tooltips_class32
    15.     Module        : comctl32
    16.     Window Proc   : 719CBAA8
    17.     Win Version   : 0.00
    18.     Parent        : 010014    (BC6406E8)
    19.     Next          : 0304EA    (BC6DC990)
    20.     Owner         : 03006C    (BC649650)
    21.     Style         :
    22.     Window Rect   : 222, 708, 586, 738 (364 x 30)
    23.     Client Rect   : 1, 1, 363, 29 (362 x 28)
    24. :
    25. :
    26. :dd BC64A630
    27. 0010:BC64A630 ????????  ????????  ????????  ????????      ................
    28. 0010:BC64A640 ????????  ????????  ????????  ????????      ................
    29. 0010:BC64A650 ????????  ????????  ????????  ????????      ................
    30. 0010:BC64A660 ????????  ????????  ????????  ????????      ................
    31. :
    32. :
    33. :addr explorer
    34. :dd BC64A630
    35. 0010:BC64A630 00010090  00000003  E18478A0  812FC038      .........x..8./.
    36. 0010:BC64A640 BC64A630  00000400  80000300  200800A8      0.d............
    37. 0010:BC64A650 84800003  71950000  00000000  BC6DC990      .......q......m.
    38. 0010:BC64A660 00000000  BC6406E8  00000000  BC649650      ......d.....P.d.
    39.  






    И позыркай ещё "USER Object Table" в "Using SoftICE".
     
  5. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Недавно помнишь говорили о превращении обычного потока в GUI (когда появляеться очередь сообщений и т.д.) , так вот при первом превращении ядро выделяет участок хипа в нашем процессе и этот участок уже заполнен всякой х-ней , в том числе и предопределёнными классами окон .



    И при инициализации common controls (InitCommonControlsEx,icce) регистрируються новые классы (смотря что проставили - ICC_COOL_CLASSES,ICC_USEREX_CLASSES и т.д.) , информация о них тоже записуеться в тот участок .



    Four-F Не видел , что ты уже ответил . Это я про юзер моде говорил , что смог увидеть :)
     
  6. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Хе , в том участке лежат классы окон от Олли (можно юзать вместо IsDebuggerPresent :) , ещё например лежит Windows Commander , хотя он у меня не запущен .

    [​IMG] _779734437__memory.png
     
  7. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Four-F

    Это мало что говорит, я надеялся что есть какие-нибудь "полу"документированные структуры в которых он(класс окна) содержится, например функция GetClassName куда-то там по адресу fs:[18] и т.д. лезет за классом, кажется, я пристально ещё не исследовал.
     
  8. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Asterix




    Так я за ней и следил :) Туда она и лезет . Только вот в том участке свиду такой бардак , надо бы узнать в каких структурах там это всё лежит .
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    И ещё интересно, что будет если, всё-таки, удастся обнаружить этот класс окна и пропатчить его прямо в памяти, т.е. например что будет с тем окном, которое в этот момент нах-ся на desktop'е если мы таким варварским способом сменим его класс :derisive: ?
     
  10. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Вот перегрузился смотрю тот участок намного чище , т.е. там собираються все окна (и менюхи кстати) за весь сеанс работы виндовз . Это может быть полезно . Интересно под w9x тоже самое ?
     
  11. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    Там стоит атрибут только чтение . А запись поставить не даёт !!
     
  12. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    bogrus

    А из драйвера?

    Попробуй под SoftIce пропатчить.
     
  13. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Не пользуюсь я SoftIce-ом , не умею и пока лень ставить :)

    Сдаёться мне , что ядро динамически проецирует какой-то свой участок\участки на все GUI процессы (имею ввиду на их юзер пространство) , может быть такое ?



    Это наверное эти , USER GDI объекты создаваемые HMAllocObject (из доки к айсу) ?
     
  14. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Asterix, я не совсем верно понял вопрос. Самому лень смотреть, но в исходниках встречается функция InternalRegisterClassEx и структура CLS.



    [ bogrus: Сдаёться мне, что ядро динамически проецирует какой-то свой участок\участки на все GUI процессы (имею ввиду на их юзер пространство), может быть такое ? ]



    Может. Только, IMHO, логичнее запихивать всё это в ядро и оттуда тягать. А то какой-нить ур... нагадит из юзера, что тогда?
     
  15. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    пардон, кульная тема