? OpenProcess и протекторы

Тема в разделе "WASM.WIN32", создана пользователем DDwag, 17 фев 2005.

  1. DDwag

    DDwag New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    4
    Ситуация такая: запущен мой сервис, который каждые 10 секунд смотрит с помощью EnumProcesses, OpenProcess, GetModuleBaseName запущено ли интересующее меня приложение, и если нет, то запускает его.

    Программы не защищеные крипторами работают нормально, но игры (пожатые starforce, armadillo, и подобной хернёй) либо вылетают с ошибкой, либо глючат. ОС winXPsp2.

    Пробовал просто перебирать имена процессов, без всяких действий - глюки остались.





    Влияет ли на работу процесса его открытие (exe-шник которого защищен каким-нить протектором) с помощью OpenProcccess с флагами PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, и пользование данных о нем с помощью GetModuleBaseName?





    Может есть способ узнать запущен ли процесс с таким то именем, не пользуя OpenProccess?

     
  2. Zufyxe

    Zufyxe New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    137
    Адрес:
    Russia


    см. NtQuerySystemInformation, класс SystemProcessesAndThreadsInformation.
     
  3. DDwag

    DDwag New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    4
    2 Zufyxe: Спасибо, но это не достаточно ленивый способ, слишком много кода



    Чего-то я вчера погорячился с этим постингом, попробовал получать информацию о процессе с заданным именем через интерфейсы WMI - усё работает без глюков, только вот игры подлагивать стали :dntknw:, лаги происходят на выполнении запроса WQL: "SELECT * FROM Win32_Process Where Name = \"my_app.exe\""
     
  4. DDwag

    DDwag New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    4
    Лаги побеждены, это был аудит безопасности, писались все результаты обращения к системным объектам несколько десятков на один запрос. Отключение аудита безопасности помогло.