Как определить какой функцией создано окно?

Тема в разделе "WASM.BEGINNERS", создана пользователем neutronion, 28 апр 2010.

  1. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Привет, спецы. Ковыряюсь в одной программе, в Олке хочу выйти на
    функцию, которая создает окно. Но пока ничего не выходит.
    Пробовал и CreateWindowEx и DialogBoxParam и тому подобные.
    Ничего не выходит. Вопрос следующий: возможно ли только по окну, которое уже появилось определить какой функцией это окно создавалось,
    например с помощью Spy+ или какими-нибдудь другими инструментами?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Не можете найти функцию программы, которая создала окно?
     
  3. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Есть упоминание в программе CreateWindowEx, но приложение не позволяет ставить точку останова на этой функции, поэтому соответственно уверенности нет. Выпадают исключения, если ставлю
    хардварную точку останова не на начале этой функции, приложение просто засыпает и ничего не делает. Это все происходит в Ольке.
     
  4. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    выкладывай файл =)
     
  5. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Удалось найти строку, где эта программа получает название в Title.
    Изменив ее получился собственный заголовок. Вроде при создании окна
    нужно передавать его заголовок в эту функцию, если не ошибаюсь.
     
  6. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Чесно признаться это ломаная версия, боюсь будет мне по башке, если
    выложу. Не охота подводить такой замечательный сайт. И скорее всего
    наверняка здесь существует запрет на такие рода манипуляции.
     
  7. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    можно ссылку на sendspace например
     
  8. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Вы хотите папку со всеми длл-ми? Попробовал на виртуальную машину
    кинуть эту папку и оттуда запустить эту прогу, она не запускается из-за
    отсутствия библиотеки, и даже если я суну ей эту библиотеку не факт,
    что не потребует, чего-то еще. Помнится Крис как-то в статье на хакере
    объяснял как переносить установленные проги с одного компа на другой
    в отсутствие инсталляционного пакета, но это потребует времени.
    Можно попробовать на торренте выложить пакет, и это тоже потребует
    времени :).
     
  9. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    можно конечно установить в виртуальной машине и передать файл виртуальной машины, но это маразм, придется качать не менее гига из-за
    одной проги.
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Брейк на NtUserCreateWindowEx, ну или на стаб попробуйте.
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Есчо можно лог снять. Но думаю вам сложно будет. Включить логгирование через ProcessHandleTracing, когда окно будет создано/отображено снять лог. Там должна быть ссылка на адрес возврата из VerNtUserCreateWindowEx(), так в XP, ссылки в _CreateWindowEx(), InternalCreateDialog(). Выше будет бактрейс, где может быть адрес возврата в CreateWindowExA() и выше в вызывающий код.
     
  12. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Спасибо, попробую все вышеперечисленное.
     
  13. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    А как это логирование посредством ProcessHandleTracing?
    Я пробую Trace over и Trace info, ничего не получается этими способами.
    Приложение после того как началось логгирование трейса, останавливается на исключении, пройти его с помощью ctrl+f9 не катит,
    так как логирование с этого момента отключается. Если же я исключение пытаюсь пройти ctrl+f12 (это trace over), то появляется неприятное окно,
    что вот такое: ( в приложении)
     
  14. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    картинка с кривым сообщением. Инфу о приложении по известным причинам замазал, сорри.
     
  15. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    рано тебе читать посты Клерка :)
    Хотя бряк на NtUserCreateWindowEx резонная мысль :)
     
  16. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Такой экспортируемой функции у ntdll.dll не найдено. Поэтому бряк не ставится, говорит unknow identifier
     
  17. VaZoNeZ

    VaZoNeZ New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    121
    Можно использовать API Monitor и подобные.
     
  18. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    neutronion
    Это сервис, стаб для него не экспортируется. Смотрите в символах.
    (
    Получить описатель процесса и заюзать NtSetInformationProcess с указанным инфоклассом. Утилиты это не умеют, оля в частности.)
     
  19. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Да, похоже проще всего воспользоваться мониторингом Апи этой программы.
     
  20. Rustem

    Rustem New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2004
    Сообщения:
    429
    Адрес:
    Russia
    neutronion Попробуй API Logger http://blackninja2000.narod.ru/files/apilog13pub.zip