EnumProcessModules, GetModuleFileNameA psapi

Тема в разделе "WASM.RESEARCH", создана пользователем zxcvbn1, 20 ноя 2008.

  1. zxcvbn1

    zxcvbn1 New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2008
    Сообщения:
    1
    Собственно нашел в одной штуке для поиска процессов такой момент.
    В функцию EnumProcessModules передается не хэндл конкретного процесса, а какбы хендл их родительского (2В4, 2СС к примеру, который разный при каждом запуске этой программы). в итоге это все возвращает какойто хендл по которому дальше GetModuleFileNameA(psapi.dll) возвращает название и путь процесса. Тоесть для какого-то процесса перечесляются его модулями все процессы в системе.

    Дальше идет zwQuerySystemInformation (5) и по полученым отсюда PID сверяется кто скрытый.
    Может кто подскажет что это за хендл и откуда он может браться для EnumProcessModules. В данный момент это трудно выяснить по коду изза протектора.
     
  2. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    SystemObjectInformation позволяет получить по указателю на обьект его родительский процесс, но для этого нужно соблюсти некоторые условия с начала запуска системы.
    EnumProcessModules() насколько помню выполняет примитивное чтение в цикле блока данных загрузчика в указанном процессе.
    Значит эта функция перечисляет модуля родительского процесса.
    Хэндл модуля - это термин, который вводит в заблуждение многих, это не дескриптор, а всеголишь адрес загрузки модуля.
    Значит возвращается имя модуля, из которого создан процесс.
    Вобщем бред.