Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.009 c
1-6017
GogaStar
2004-02-19 12:21
2004.03.03
Как отловить нажатие клавиши...


1-6060
Drozdov A
2004-02-18 15:22
2004.03.03
If ....Then


4-6270
Bless
2003-12-25 15:19
2004.03.03
обработка сообщений в консольном приложении


14-6231
Undert
2004-02-10 18:48
2004.03.03
TClientSocket + POST


3-5959
Andriy Tysh
2004-02-05 14:15
2004.03.03
DBLookupComboBoxEh & DISTINCT





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский