Узнать заголовок окна по Handle (r0)??

Тема в разделе "WASM.NT.KERNEL", создана пользователем test555, 21 янв 2010.

  1. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    >> мне не хватает знаний
    Но спросить-то можно? А то и правда, как верно заметил Clerk, получится софт, который работает через одно место. Такие виды софта обычно называют БСОДогенераторами. :)

    Смещение надписи окна менялось всего три раза за всю историю NT-линейки (не включая NT <= 4.0). Разузнать их самому дело одного часа при наличии бинарников ядра и дизассемблера.

    Но если знаний и правда не хватит, могу дать все три смещения.
     
  2. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    Clerk, Twister: я за "правильный" софт. Хотя на данный момент БСОДов не вылазило, но хотелсь бы переделать "правильно".

    Люди ленивы, я тоже выбираю самый короткий путь. Немного применив смекалку, в моем случае можно было заюзать юзермодный буфер, после чего восстановить его содержимое.

    Но, вернемся к теме поста. Пошел усиленно разбираться в исходниках.

    ПС: а кто знает самый "правильный" способ узнать имя текущего процесса (progaram.exe)?
    Щас - узнаю ПИД текущего процесса, потом NtSystemQueryInformation (SystemProcessAndThreadsInformation), перебираю найденные записи, пока не найду нужный пид.

    На форуме гуляет совет про функцию, PsGetProcessImageFileName, но прочел что ее нет в 2000..
    Был еще вариант получить PEPROCESS, и через нее выйти на PEB. Но документации по этой структуре на нашлось, на разных виндах разные смещения.
    Вот, то ли таскать эти смещения (их еще нужно научиться узнавать), либо юзать с перебором ПИДов..
     
  3. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    Простите за глупый вопрос, но где можно узнать о том, как для начала найти PSHAREDINFO??
     
  4. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Через секцию в структуре объекта-процесса. Работает универсально для любой системы от Windows XP до Windows 7 и не требует никаких жёстко зашитых значений/смещений. Более подробно см. в поиске, ну или жди пока я в блоге отпишу.
     
  5. test555

    test555 New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    241
    Я отказался от PsGetProcessImageFileName потому что 2000 это не поддерживает. Так и тут - поддержка только с ХР??
     
  6. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Не потеряйте файлик, пригодится ;)

    В нем есть все, чтобы решить задачу, обозначенную в заголовке топика.
     
  7. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Я бы на твоём месте отказался от поддержки Windows 2000. Я вот уже, и всем советую.

    Функция PsGetProcessImageFileName() работает некорректно. Использовать её нельзя. Аминь.

    На Windows 2000 работать будет с минимальными изменениями, просто я уже давно забил большой болт на эту систему. Заказчики не против, обычно упоминают 2000 в требованиях банально по инерции.
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    test555
    Парсер создающий граф поможет искать многие ссылки расположенные весьма глубоко простым и универсальным способом.