Способы общения между процессами

Тема в разделе "WASM.RESEARCH", создана пользователем SammIk, 18 май 2005.

Статус темы:
Закрыта.
  1. SammIk

    SammIk Member

    Публикаций:
    0
    Регистрация:
    11 янв 2004
    Сообщения:
    90
    Адрес:
    Russia
    Доброе время.

    Хотелось бы улышать мнение вас, по поводу того,

    как приложения могут общатся между собой.

    Помимо мьютесков, евентов, секций, промепленных фаилов,

    сообщений.

    ПС: Есть программа, флеш, и каким-то образом она находит

    что присутствует второй экземпляр.

    Я наковырял, что первый заслон был создание

    секции(те меплился фаил с хендлом -1).

    Это дело я обошел, но через некоторое время, прога вываливается, мол, есть уже копия((

    Причем вываливается копия так, которая была запущена раньше.

    Второй вопрос:

    Не мешаю проге создать мапленый фаил, мапит она память.

    Потом я закрываю хендл созданный createfilemap***.

    При запуске второго экземпляра будетли эта область памяти

    разделена между процессами?

    ЗЗЫ: Извените за, возможный, сумбур в вопросе.
     
  2. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229


    Вполне возможно и такое. Особенно если один процесс пораждает другой, это банально.

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

    В этом случае спроецированный участок данных дается в использование и твоему процессу.

    Общатся можно через мои любимые файловые ntfs потоки, и особенно через то что ты уже назвал. Реестр - старье, а тоже средство. Разумеется твоя программа может искать по сигнатуре, например название процесса, объекта (системные "доступны всем"), caption в конце концов...
     
  3. SammIk

    SammIk Member

    Публикаций:
    0
    Регистрация:
    11 янв 2004
    Сообщения:
    90
    Адрес:
    Russia
    Защиту осуществляет влеш плеер от макромедии.

    Процессы запускаю я сам.

    Общаются процессы не через разделяемую память((

    Поскольку в ручную(муть млин) изменил в первой копии названия, мьютексов и секций, так шо не этим способом общаются.

    Да и реестр шерстил, думаю, что не сдесь проблема.

    ----

    НТВС, врятли, но не проверял(подскажите где почитать).

    ----

    Но, то, что вываливается первая копия наталкивает на мысль, что

    вторая запущеная, что-то перетерает.

    Отрезал все именованые обьекты(закрывал хендлы) в первой копии.

    А потом вторую запускал, но эффект тот же.

    ----

    Толькочто заметил, что есть какой-то обьект port с именем

    blabla\OLE??(где ?? цыфра). Может сдесь есть что?

    ----

    У кого какие еще соображения? Уже не просто интересно......
     
  4. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    SammIk



    Если тоже самое под ntfs то забудь.





    А почему нет?
     
  5. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    SammIk

    пусть общаються через файл. Пишут и читают оба.

    Записал установил событие, прочитал снял. В озу как раз всё висеть не будет.
     
  6. Nimnul

    Nimnul New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2005
    Сообщения:
    136
    Адрес:
    не Китай
    Через файл это ламерство врятли они на это пошли, скорее через реестр.
     
  7. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Nimnul

    Ламерство не ламерство, в таких случаях проверяют все возможные варианты.

    Лучше всего поставить анализаторы обращений к файлам и реестру для начала (если это еще не было сделано).
     
  8. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    mailslots?
     
  9. SammIk

    SammIk Member

    Публикаций:
    0
    Регистрация:
    11 янв 2004
    Сообщения:
    90
    Адрес:
    Russia
    Нет, маил слотов прога не открывает.

    Сегодня продолжу копание.

    Как только, сразу отпишу что нашел.

    Кстати, олипорт закрываю. Но эта бяка, всеравно как-то находит второй экземпляр.

    Проверю на реестр и на фаил.
     
  10. SammIk

    SammIk Member

    Публикаций:
    0
    Регистрация:
    11 янв 2004
    Сообщения:
    90
    Адрес:
    Russia
    Оказалось не ламерство(про фаил).

    В итоге потяряв всякую надежду(сильно спать хотелось), забил на эту защиту.

    А сегодня утром, врубил свой любимый фаил мон, и нашел таки эту гадость.

    Фух, теперь придется перехватывать доступ к фаилу и подсовывать нужные данные.

    Или кто может предложить другой вариант?
     
  11. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229


    Попробовать обрубить обработку этих левых данных, если они не критичны в работе.
     
  12. SammIk

    SammIk Member

    Публикаций:
    0
    Регистрация:
    11 янв 2004
    Сообщения:
    90
    Адрес:
    Russia
    Увы, критично.

    Я думаю, перехватывать создание фаила, и подсовывать

    фиктивный хендл, с помощю которого отлавливать обращение к фаилу.

    Фаил создаваться не будет. Посмотрим что выидет.

    -------

    Каким образом можно создать фаил?

    OpenFile программа не использует, а CreateFile используется только с флагом OPEN_EXISTING.

    Как я понял, из сдк, при этом флаге, если нет фаил, возвращается ошибка, а фаил не создается.

    Однако фаил в коталоге появляется.

    Поиду дальше рыть

    [ДОБАВЛЕНО]

    Блин, немогу=))

    Если смотреть на логи фаилмона, то в фаил ничего не пишется.

    Но, увы, фаил как-то заполняется.

    Грустно(

    Ушел в медитацию
     
  13. SammIk

    SammIk Member

    Публикаций:
    0
    Регистрация:
    11 янв 2004
    Сообщения:
    90
    Адрес:
    Russia
    Народ у кого ХР, подскажите какие первые 3-4

    инструкции в ф-ях

    CreateFileW

    WriteFile

    ReadFile

    CloseHandle(Или эту ф-ю не обязательно хватать, но на всякий случаи скажитн).

    Спасибо всем ответившим и тем уто еще ответит;)
     
  14. SammIk

    SammIk Member

    Публикаций:
    0
    Регистрация:
    11 янв 2004
    Сообщения:
    90
    Адрес:
    Russia
    Все вошло на круги своя.

    Суть защиты.

    Первый круг:

    Создавалась разделяемая секция.

    Следующий запущеный процесс смотрел есть ли такая секция, и если была, то не грузилось.

    Второи круг:

    Создается фаил, в него пишется инфо.

    Если юзер желал что-то сделать, то читалась информация.

    Запись производится й раз при вводе пароля.

    Следовательно второй запущеный процесс перетерал запись, а первыи матерился.

    Но, мать их, в макромедии работают шутники.

    Они в это фаил непосредственно не пишут.

    А пишут в другой фаил( с замененным расширением) а после

    записи, просто переименовывали его ф-ей movefile.

    Поэтому я никак не мог отловить эту запись в фаил.

    Огромное спасибо тем, кто помогал.



    ЗЫЖ Хороший опыт получил.

    ЗЗЫЖ Насчет стабов ф-ии отпишите пожалуйсто.
     
  15. SammIk

    SammIk Member

    Публикаций:
    0
    Регистрация:
    11 янв 2004
    Сообщения:
    90
    Адрес:
    Russia
    Написал, работает.

    ВСем спасибо
     
Статус темы:
Закрыта.