Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

---|Ветка была без названия|---   Найти похожие ветки 

 
DBM   (2004-02-10 17:22) [0]

Подскажите, реально ли это (запрет запуска второго экземпляра приложения) обойти.
Какие методы защиты использованы неизвестно.


 
N169   (2004-02-10 17:25) [1]

1)Если неизвестно, то нельзя.
2)Если uспользованы именованные mutexы, можно попробовать запускать экземпляры приложения от имени разных пользователей.


 
DBM   (2004-02-10 17:29) [2]

>>N169
А если использован поиск по Handle?


 
Ihor Osov'yak ©   (2004-02-10 17:30) [3]

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

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


 
Ihor Osov'yak ©   (2004-02-10 17:31) [4]

2 [1] N169 (10.02.04 17:25)

Не всегда поможет.. есть таеой волшебній преффикс в имени, Global


 
DBM   (2004-02-10 17:33) [5]

>>Ihor Osov"yak ©
Бывает ли так, что запрет запуска сделан потому, что разработчик не смог (или не хотел) разбираться c "почему эта сволочь не работает, если я запускаю ее еще раз"?


 
N169   (2004-02-10 17:35) [6]

>DBM (10.02.04 17:29) [2]
Тогда не пройдёт

>Ihor Osov"yak © (10.02.04 17:31) [4]
Я не случайно написал "можно попробовать" :o)
Иногда работает. Иногда нет.


 
DBM   (2004-02-10 17:40) [7]

>> All
Off_topic
Простите за русский в теме. Самому глаза режет.


 
Владислав ©   (2004-02-10 18:19) [8]

> DBM (10.02.04 17:33) [5]

С трудом этому вериться. Вот если сказать, чтобы работало корректно, то да.


 
DBM   (2004-02-10 18:23) [9]

>>Владислав © (10.02.04 18:19) [8]
Разница?


 
Ihor Osov'yak ©   (2004-02-10 18:25) [10]

2 [9]

Есть. И очень большая.


 
DBM   (2004-02-10 18:36) [11]

То есть существуют программы, использующие такие методы (не прог. термин), которые по умолчанию не могут работать в "дубле"?


 
Владислав ©   (2004-02-10 18:39) [12]

> DBM (10.02.04 18:36) [11]

Да. Можно вспомнить разные причины... Например синхронизация при обращении к файлам... Причин может быть много. Зачем городить огород, если можно предотвратить проблемы единственным экземпляром?


 
Игорь Шевченко ©   (2004-02-10 18:54) [13]

DBM (10.02.04 18:36)

> То есть существуют программы, использующие такие методы
> (не прог. термин), которые по умолчанию не могут работать
> в "дубле"?


Аська, например


 
DBM   (2004-02-10 18:57) [14]

>>Владислав ©
Спасибо за информацию. Буду знать.

Но в данном конкретном случае - это программа для записи данных в девайс via ComPort - проблемм, насколько я понимаю, две.
1. Доступ к файлу
2. Доступ к порту
Второй решается элементарно, первый же обходится труднее, но все же решаемо (самый простой вариант - делать копию)
Дело в том, что весь подобный софт расчитан на потоковую запись (т.е. подразумевается, что девайсов ОЧЕНЬ много и времени ОЧЕНЬ мало), соответственно непонятно желание разработчиков (или в данном конкретном случае, видимо разработчика) ограничить данный поток. Экономическими мерами это не объяснить, слишком далеко мы друг от друга. Очень далеко.


 
DBM   (2004-02-10 18:59) [15]

>>Игорь Шевченко © (10.02.04 18:54) [13]
Не надо лукавить (очень модное выражение в "потрепаться"). Вы отлично знаете, что это лечится. Я не думаю, что те, кто это сломал, добрались до исходников ICQ.


 
Ihor Osov'yak ©   (2004-02-10 19:03) [16]

я еще своих три копейки..

regedit например. Ну, здесь больше за принцыпом - береженного бог бережет.
А вот OutLook Express - имеет на то больше оснований.

Если говорить вообще - очень часто это программы, которым нужно либо монопольное использование какого-то ресурса, либо когда решение задачи многопользовательского доступа к какому-то ресурсу есть нецелесообразным. В таком случае - обеспечение запуска приложения в одном экземпляре - один из приемов выхода из такой ситуации. Своего рода первый рубеж защиты. И очень не мудро, когда такой рубеж - единственный.


 
Игорь Шевченко ©   (2004-02-10 19:03) [17]

DBM (10.02.04 18:59)

А смысл ломать ? Как будут работать две аськи с одним UIN ?


 
Ihor Osov'yak ©   (2004-02-10 19:08) [18]

2 [14]

Так все же via или все же as? И конкретно один дивайс или несколько?


 
DBM   (2004-02-10 19:56) [19]

>>Ihor Osov"yak © (10.02.04 19:08) [18]
Ну, не знаю... Я всегда считал, что via - это "через" именно в данном контексте... Если я не прав, то поправте меня.
Несколько одинаковых на нескольких портах.


 
Ihor Osov'yak ©   (2004-02-10 20:15) [20]

ну, значит я не понял контекста.. Собственно сам com-порт допускает только эксклюзивное открытие - так уж стандартный драйвер последовательного порта написан, и это вполне логично.. Ну, а случай нескольких девайсов на нескольких портах - что ж, вполне возможно, что недеочет разработчика - в том, что он делает возможным запуск приложения в одном экземпляре. Но нельзя и отбрасывать версию о том, что нам известны не все обстоятельства..
Хотя если это недочет - то вполне может подойти совет а-ля [1] - тот же хп в контекте разных пользователей, или терминальный сервер в разных сессиях..
Кстати - определить какой метод используется для блокировки запуска второго экземпляра - не такая уж архисложная задача..
WinObj - для просмиотра именованых обьектов, filemon для отслеживания файловой активности, regMon - то же для регистри (все это добро на сисинтерналс), метод поиска окна - можна догадаться при анализе чего програмулина импортирует - имхо, нормальной программе файндвиндоу всякие не нужны :-)... и так далее.. В худшем случае - немного тренировки с отладчиком.. Но здесь уже элемент везения..

Но самый правильный путь - связаться с разработчиком..


 
Ihor Osov'yak ©   (2004-02-10 20:20) [21]

кстати - причина блокировки может юыть до простого банальна - настройки в регистри, причем не предусмотрено нескольких вариантов конфигураций.. То есть все приложения при запуске попытаются работать с одним портом. Изменение настройки в одном приложении - повлияет на все.
Если настройки не в HKCU, а в HKLM - то никакие ухищрения с терминалами и сесиями не помогут..


 
Дремучий ©   (2004-02-10 20:44) [22]


> Игорь Шевченко © (10.02.04 19:03) [17]
> А смысл ломать ? Как будут работать две аськи с одним UIN ?

с одним точно не будут :)) а вот с разными можно, только стандартная ICQ всеравно не разрешает :)
Почему? По простой причине: они используют горячие клавиши на уровне системы(например прятание аськи). А такие комбинации нельзя присвоить двум экземплярам программы. Первый экземпляр удачно регистрирует:

//регистрируем комбинацию Ctrl+F12
id:= GlobalAddAtom("ICQ-visible");
hkey:= RegisterHotKey(Application.MainForm.Handle, id, MOD_CONTROL, VK_F12);

а другой уже в пролете, так как комбинация Ctrl+F12 занята на системном уровне. ИМХО, только из-за этого. Так как у меня абсолютно удачно уживаются несколько "запущеных" экземпляров самописной аськи :))


 
DBM   (2004-02-10 20:45) [23]

>>Ihor Osov"yak ©
Программа не предусматривает записи/чтения регистра.
Нет, с эти не связано.



Страницы: 1 вся ветка

Текущий архив: 2004.03.03;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.024 c
6-6179
Den_py
2003-12-27 07:17
2004.03.03
Socket


1-6077
alless
2004-02-20 19:30
2004.03.03
ScrollBar


14-6248
Makhanev A.S.
2004-02-11 22:07
2004.03.03
Помогите плиз...


3-5995
Дина
2004-02-05 08:48
2004.03.03
Архивация базы данных


1-6066
Creator
2004-02-21 14:05
2004.03.03
Caption активного окна