дочерний процесс

Тема в разделе "WASM.BEGINNERS", создана пользователем ltshck, 4 апр 2008.

  1. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    у processExplorer есть фича. он может показывать кто кого запустил.


    Есть приложение
    Soft1.exe
    которое делает
    ShellExec / CreateProcess ( ..., Soft2.exe , ...)

    вопрос.

    как Soft2.exe -у узнать что его запустил Soft1.exe ?

    PrevHinstance? Как?
     
  2. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    Да, под Windows вопрос этот...
     
  3. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    нашел это

    http://www.codeproject.com/KB/threads/ParentPID.aspx

    спасибо кто мысленно хотел помочь...

    а проще есть способ?
     
  4. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    Штука хорошая.
    Так отладчик палить можно,олю например.
    (не все процессы сканить, а конкретно взяться за родителя, а если нет доступа к нему то точно отладчик ))) )
     
  5. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    Можно через Process32First/Process32Next
    Можно через ZwQuerySystemInformation

    В возвращаемой структуре есть PID и PPID - это соответственно идентификатор процесса и идентификатор родительского процесса

    Если PPID of Soft1.exe == PID soft2.exe значит
    sott1.exe бы запущен через soft2.exe
     
  6. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    а как можно изменить идентификатор родительского процесса на любой другой, например на explorer.exe ?
    Или, перефразировав, как можно запустив дочерний процесс из своей проги, но что бы в системе дочерний процесс как бы был запущен от другого процесса?
    Переименовать свой процесс в explorer.exe не хочется, так как, будет выглядеть подозрительно еще один explorer.exe.
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Бесполезно, т.к. хранится именно PID. Пропатчить можно из ядра, EPROCESS::InheritedFromUniqueProcessId.
     
  8. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    beginner
    инжект-батюшка :)

    OpenProcss
    VirtualAllocEx
    WriteProcessMemory
    CreateRemoteThread

    Но палится наверное уже всем, чем можно
     
  9. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    zoool
    ну значит лучше всего, что бы второй процесс запускался ручками :)
    неудобно конечно, ну что ж делать...
     
  10. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    А в чём проблемма? автозапуск? подгрузи длл к эксплореру
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad