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

Вниз

Кто запустил программу?   Найти похожие ветки 

 
RightD   (2006-12-11 12:26) [0]

Привет!
Необходимо запускать приложение только из другого приложения, исключая "ручной" запуск. Как это можно организовать?


 
Сергей М. ©   (2006-12-11 12:32) [1]


> Как это можно организовать?
>

Никак.


 
Elen ©   (2006-12-11 12:32) [2]


> Необходимо запускать приложение только из другого приложения,

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


 
Сергей М. ©   (2006-12-11 12:36) [3]


> Elen ©   (11.12.06 12:32) [2]


Опять двадцать пять за рыбу деньги ?)


 
clickmaker ©   (2006-12-11 12:36) [4]

ну для защиты от совсем уж чайника можно сменить расширение с exe на что-нить более экзотическое


 
Игорь Шевченко ©   (2006-12-11 12:40) [5]


> Как это можно организовать?


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


 
RightD   (2006-12-11 12:41) [6]


> clickmaker ©   (11.12.06 12:36) [4]


ну не хотелось бы так =)


> Elen ©   (11.12.06 12:32) [2]

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


 
RightD   (2006-12-11 12:42) [7]


> Игорь Шевченко ©   (11.12.06 12:40) [5]
>
> > Как это можно организовать?
>
>
> передавать какой-нибудь параметр, имеющий смысл в запускающем
> приложении и проверяемый в запускаемом. Например, числовой
> идентификатор процесса или окна.
> Но нафига такой изврат, я не понимаю.


Смысл в подобии системы безопасности... ну как то так. Спасибо за совет.


 
Elen ©   (2006-12-11 12:44) [8]


> Опять двадцать пять за рыбу деньги ?)

От несчастье, ну ладно исключить запуск впринципе невозможно, но работу дальнейшую можно прекратить. И все же пакеры как раз и запускают приложение из себя.


 
Игорь Шевченко ©   (2006-12-11 12:45) [9]

RightD   (11.12.06 12:42) [7]


> Смысл в подобии системы безопасности...


Это неправильная система безопасности.

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


 
RightD   (2006-12-11 12:47) [10]


> Игорь Шевченко ©   (11.12.06 12:45) [9]
> RightD   (11.12.06 12:42) [7]
>
>
> > Смысл в подобии системы безопасности...
>
>
> Это неправильная система безопасности.


Подскажите более подходящий вариант


 
Игорь Шевченко ©   (2006-12-11 12:49) [11]

RightD   (11.12.06 12:47) [10]


> Подскажите более подходящий вариант


Я не знаю, что тебе надо. Опиши проблему - может и найдется приемлемый без извратов вариант


 
Elen ©   (2006-12-11 12:50) [12]


> RightD

А чего б не поставить доступа на папку с прогой, и тогда ее можно будет запускать только избранным?


 
trubin ©   (2006-12-11 12:57) [13]

Если тупо фоновой утилитой переодически перебирать процессы и запрещенные грохать? (не красиво конечно)


> Необходимо запускать приложение


В смысле любое приложение?


 
RightD   (2006-12-11 12:58) [14]

Пишется приложение, выполняющее следующие функции:
1) Запрос атрибутов пользователя
2) Выборка из БД доступных проектов и их приложений
3) Запуск доступных приложений (не просто *.exe, возможно с доп. файлами)
4) Проверка наличия у IT-отдела  обновленных версий и обновление в случае необходимости.
...
в общих чертах


 
RightD   (2006-12-11 12:59) [15]


> Игорь Шевченко ©   (11.12.06 12:49) [11]
> RightD   (11.12.06 12:47) [10]
>
>
> > Подскажите более подходящий вариант
>
>
> Я не знаю, что тебе надо. Опиши проблему - может и найдется
> приемлемый без извратов вариант

выше это вам


 
RightD   (2006-12-11 13:00) [16]


> trubin ©   (11.12.06 12:57) [13]
> Если тупо фоновой утилитой переодически перебирать процессы
> и запрещенные грохать? (не красиво конечно)
>
>
> > Необходимо запускать приложение
>
>
> В смысле любое приложение?

Это может быть и самопис и AutoCad


 
Игорь Шевченко ©   (2006-12-11 13:03) [17]

RightD   (11.12.06 13:00) [16]


> Это может быть и самопис и AutoCad


Это никак.


 
Elen ©   (2006-12-11 13:04) [18]


> 1) Запрос атрибутов пользователя

У нас это заменили сетевой политикой. Каждый пользователь имеет свой аккаунт и входит в определенную группу, соответственно и на проектах и на некоторых прогах стоят разные доступа.


 
Сергей М. ©   (2006-12-11 13:05) [19]


> Это может быть и самопис и AutoCad
>


А нафига AutoCad"у знать кто и как его запустил ?
Ему оно не надо)


 
Elen ©   (2006-12-11 13:08) [20]


> А нафига AutoCad"у знать кто и как его запустил ?

Может автор хочет избавить предприятие от шабашников?


 
Сергей М. ©   (2006-12-11 13:13) [21]


> Может автор хочет избавить предприятие от шабашников?
>


Этим админ должен заведовать, а не программист)


 
Чапаев ©   (2006-12-11 13:43) [22]

> [5] Игорь Шевченко ©   (11.12.06 12:40)
О. Сам так делаю (+[4]), приятно услышать от мастеров подтверждение кошерности метода. ;-) А нафига -- лично у меня как минимальная защита от дурака.


 
RightD   (2006-12-11 13:49) [23]

Удалено модератором
Примечание: Жаргон меняем, не на удаве


 
Elen ©   (2006-12-11 13:53) [24]

Удалено модератором
Примечание: И не цитируем


 
RightD   (2006-12-11 13:55) [25]


> Что прямо во время работы? Сменид имя процесса?

Прошу прощения, на счет смены имени это я не подумал


 
novill ©   (2006-12-11 14:05) [26]

Тут недавно один товарищ писал прогу с подобным извращением (программная блокировка выполнения), посмотри в архивах.
Было сделано через замену команды на выполнение в реестре для исполнимых файлов и разрешение на запуск давалось через файл со списком.


 
RightD   (2006-12-11 14:57) [27]

...не нашел


 
novill ©   (2006-12-11 15:08) [28]

> [27] RightD   (11.12.06 14:57)

а если я найду?


 
Elen ©   (2006-12-11 15:12) [29]


> Было сделано через замену команды на выполнение в реестре
> для исполнимых файлов

По-моему это не на каждой винде пройдет.
Автор скажи чем не устраивает настроить политику безопасности?


 
Чапаев ©   (2006-12-11 15:16) [30]

> По-моему это не на каждой винде пройдет.
> Автор скажи чем не устраивает настроить политику безопасности?
Это не на каждой винде пройдёт.


 
RightD   (2006-12-11 15:24) [31]


> novill ©   (11.12.06 15:08) [28]

> а если я найду?

м? =)


> Elen ©   (11.12.06 15:12) [29]

> Автор скажи чем не устраивает настроить политику безопасности?
>

Мне это в голову не приходило...


 
RightD   (2006-12-11 15:39) [32]

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

(1) посоветуйте основу ключа. Шифратор-дешифратор я напишу.


 
Игорь Шевченко ©   (2006-12-11 15:40) [33]


> Программа, которую запускают имеет процедуру, анализирующую
> ключ, и принимающую решение о дальнейшей работе.


autocad тоже ?


 
Сергей М. ©   (2006-12-11 15:42) [34]


> Программа, которую запускают имеет процедуру, анализирующую
> ключ, и принимающую решение о дальнейшей работе.


Угу.
Как раз в AutoCad"е такая процедура есть испокон веков.


 
RightD   (2006-12-11 15:42) [35]


> Игорь Шевченко ©   (11.12.06 15:40) [33]

> autocad тоже ?

Нет конечно =)


 
Игорь Шевченко ©   (2006-12-11 15:47) [36]

RightD   (11.12.06 15:42) [35]

а зачем мучиться с ключами ? Передавай в параметрах или из поста [5] или непечатаемые символы.


 
Чапаев ©   (2006-12-11 15:48) [37]

Они все печатаемые, ежели умеючи... ;-)


 
Игорь Шевченко ©   (2006-12-11 15:50) [38]

Чапаев ©   (11.12.06 15:48) [37]

Но для этого их надо узнать...


 
Elen ©   (2006-12-11 15:51) [39]


> Как раз в AutoCad"е такая процедура есть испокон веков.

Как раз в Акаде не проблема ее написать на лиспе или ВБА.

>  посоветуйте основу ключа. Шифратор-дешифратор я напишу.

Нет смысла либо скоро взламают либо такая система долго не протянет. Такое впечатление что тебе надо написать собственную ОС


 
Чапаев ©   (2006-12-11 15:54) [40]

> [38] Игорь Шевченко ©   (11.12.06 15:50)
Кстати... Можно ведь получить (без выкрутасов) командную строку любого процесса? Или это не для средних умов?


 
Elen ©   (2006-12-11 15:55) [41]


> RightD

Кстати Автор а какие проги будут входить в список разрешенных - спрашиваю к тому что например Акад ведь может запускаться и работать как COM объект из твоей проги.? Может и другие в твоем списке могут так, тогда никаких ключей не надо, сделай лоадер и запускай...


 
Elen ©   (2006-12-11 15:56) [42]


> Или это не для средних умов?

Средние умы найдут более высших. Те напишут монитор и все тут - затея провалилась. (Если политика не настроена)


 
Чапаев ©   (2006-12-11 15:57) [43]

Вопрос не в наличии высших умов, вопрос в трудоёмкости. И мне бы хотелось узнать, насколько трудоёмко получение командной строки произвольного процесса.


 
Elen ©   (2006-12-11 16:02) [44]


>  И мне бы хотелось узнать, насколько трудоёмко получение
> командной строки произвольного процесса.

Легко с помошью FileMonitor :)


 
Игорь Шевченко ©   (2006-12-11 16:05) [45]

Чапаев ©   (11.12.06 15:54) [40]

Без выкрутасов нельзя.


 
RightD   (2006-12-11 16:10) [46]

Приведите пример передачи параметра от приложения к приложению.


 
Чапаев ©   (2006-12-11 16:12) [47]

> [45] Игорь Шевченко ©   (11.12.06 16:05)
Это радует. :о)


 
Elen ©   (2006-12-11 16:12) [48]


> Приведите пример передачи параметра от приложения к приложению.

Мап файлы, Мессаги от WM_USER, осторожно скажу DDE...


 
Elen ©   (2006-12-11 16:13) [49]


> Это радует

Все выкрутасы уже написаны и доступны бесплатно на многих сайтах - это плохо.


 
Игорь Шевченко ©   (2006-12-11 16:15) [50]

Чапаев ©   (11.12.06 16:12) [47]

За ради интереса запусти с консоли

program ParamApp;

uses
 Forms,
 main in "main.pas" {Form1};

{$R *.res}

var
 S: string;
begin
 Application.Initialize;
 if (ParamCount = 1) then begin
   S := ParamStr(1);
   if (Length(S) <> 4) or
      ((S[1] <> "A") or (S[2] <> #127) or (S[3] <> #8) or
       (S[4] <> "B")) then
     Exit;
 end else
   Exit;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.

TForm1 - любая форма

И запускалка:

program Launcher;

{$APPTYPE CONSOLE}

uses
 Windows,
 SysUtils;

var
 S: string;
begin
 S := ""AABB"";
 S[3] := #127;
 S[4] := #8;
 WinExec (PChar("ParamApp "+S), SW_SHOW);
end.


 
Lamer@fools.ua ©   (2006-12-11 16:22) [51]

>>Чапаев ©   (11.12.06 16:12) [47]

>Это радует. :о)
Ну пока все будут радоваться, я открою Process List в FAR"e :-)


 
Lamer@fools.ua ©   (2006-12-11 16:25) [52]

P.S. к [51]
http://i11.tinypic.com/40m2t61.png


 
boriskb ©   (2006-12-11 16:26) [53]

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

Чем они не угодили то?


 
Чапаев ©   (2006-12-11 16:28) [54]

> [50] Игорь Шевченко ©   (11.12.06 16:15)
Да... С #8 проблемы. :о) Без hexedit"а не обойтись.


 
Eraser ©   (2006-12-11 16:54) [55]

> [0] RightD   (11.12.06 12:26)
> Привет!
> Необходимо запускать приложение только из другого приложения,
> исключая "ручной" запуск. Как это можно организовать?

ну отследить, кто запустил программу можно с пом. PROCESSENTRY32.th32ParentProcessID.
так вот если этот ProcessID не совпадает с текущем ID, то глушить процесс.


 
Vga ©   (2006-12-11 20:24) [56]

> [40] Чапаев ©   (11.12.06 15:54)

Process Explorer etc показывает.

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


 
Eraser ©   (2006-12-11 20:27) [57]

> Чапаев ©  

Оффтоп:
кстати насчет того, чтобы запускать процесс от имени системы. почему бы не использовать планировщик?


 
Гарри Поттер ©   (2006-12-11 20:47) [58]

> [32] RightD   (11.12.06 15:39)
> Что вы скажете на это?:
> Программа, которая отвечает за запуск имеет процедуру создания
> файла-ключа, зависящего от ... (1)
> Программа, которую запускают имеет процедуру, анализирующую
> ключ, и принимающую решение о дальнейшей работе.
>
> (1) посоветуйте основу ключа. Шифратор-дешифратор я напишу.

А если просто запускающая прога в памяти флаг повесит, мьютекс? Запускаемая проверит наличие и запуститься\незапустится?


 
Чапаев ©   (2006-12-11 20:53) [59]

> [58] Гарри Поттер ©   (11.12.06 20:47)
Что помешает "левой" проге мьютекс создать?


> [57] Eraser ©   (11.12.06 20:27)
:о) Во наболело!


 
Гарри Поттер ©   (2006-12-11 21:07) [60]

> [59] Чапаев ©   (11.12.06 20:53)
> Что помешает "левой" проге мьютекс создать?

Что помешает "левой" проге файл-ключ создать?


 
Чапаев ©   (2006-12-11 21:09) [61]

> [60] Гарри Поттер ©   (11.12.06 21:07)
А я и не говорил, что файл-ключ -- это хорошо. ;-)


 
RightD   (2006-12-12 10:13) [62]


> Гарри Поттер ©   (11.12.06 21:07) [60]
> > [59] Чапаев ©   (11.12.06 20:53)
> > Что помешает "левой" проге мьютекс создать?
>
> Что помешает "левой" проге файл-ключ создать?


"Левую" прогу еще написать надо...



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

Форум: "Прочее";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.048 c
2-1165852682
Makhanev Alexander
2006-12-11 18:58
2006.12.31
смена состояния always on top на лету...


15-1165946774
ProgRAMmer Dimonych
2006-12-12 21:06
2006.12.31
Наверное, ламерский вопрос...


6-1154931034
Yegorchic
2006-08-07 10:10
2006.12.31
IdMessage и "--"


4-1156283062
Андрей555
2006-08-23 01:44
2006.12.31
КАК определеить на сколько переместилась мышка?


15-1165573913
plotn
2006-12-08 13:31
2006.12.31
Иконки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский