Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
16 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 100
1

Как создать песочницу для приложени(й)я?

29.03.2019, 08:46. Показов 834. Ответов 13
Метки нет (Все метки)

Необходимо создать песочницу для исполняемого *.exe файла.

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

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

Дополнительный вопрос: есть ли возможность обмена данными между приложениями использующими общую песочницу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2019, 08:46
Ответы с готовыми решениями:

Как создать песочницу?
Допустим я подгружаю код со стороны, как мне затереть все функции ввода/вывода чтения/записи...

Программа-песочницу, для ограничения доступа программам к USB
Всем привет. Собственно задача описана в заголовке - нужна какая-то песочница, которая позволит...

Скажите как сделать так что б кнопку или другой объект можно было растягивать и перемещать во время выполнения приложени
скажите как сделать так что б кнопкув или другой объект можно было растягивать и перемещать во...

Нужен исходник приложени
Нужен исходник приложения переводящее сантиметры в метры.Чтоб было звуковое сопровождение перед...

13
Эксперт .NET
8868 / 6178 / 1031
Регистрация: 21.01.2016
Сообщений: 23,353
29.03.2019, 09:28 2
Цитата Сообщение от Zeropil Посмотреть сообщение
Необходимо создать песочницу для исполняемого *.exe файла.
VirtualBox c виндой. Или новая фича Windows 10 Pro.
3
16 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 100
29.03.2019, 11:56  [ТС] 3
Цитата Сообщение от Usaga Посмотреть сообщение
VirtualBox c виндой. Или новая фича Windows 10 Pro.
Как вариант годно, но мне нужно чтобы именно мое приложение создавало "песочницу" и работало все на C#. Данный способ разрешает запуск 1 файла, а переносить все в песочницу "ручную" не вариант. Приложение, которое будет работать в той песочнице, содержит множество файлов и библиотек, и есть вероятность "расширения" этого количества объектов, потому прописывать все "вручную" такое себе занятие.

Может, есть пример на основе доменных приложений?
0
Эксперт .NET
8868 / 6178 / 1031
Регистрация: 21.01.2016
Сообщений: 23,353
29.03.2019, 12:13 4
Zeropil, вам не надо всё вручную переносить в песочницу. Вам достаточно "стартер" свой перенести, который сам загрузит и развернёт всё, что нужно.
0
906 / 791 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
29.03.2019, 12:15 5
Видимо Вам нужна технология AppDomain, хотя и тут много вопросов что для Вас эта "песочница" ибо любое приложение будет иметь доступ к системе и тут уже не совсем песочницей и пахнет
0
16 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 100
29.03.2019, 12:37  [ТС] 6
Цитата Сообщение от Usaga Посмотреть сообщение
Вам достаточно "стартер" свой перенести, который сам загрузит и развернёт всё, что нужно.
Меня этот момент напрягает, предположим оба приложения будут в одной папке. Одно приложение запустит другое находясь в песочнице, другое наследует от него все разрешения? Сомневаюсь, что последнему приложению будут "по вкусу" такие манипуляции. Дело в том, что приложение использует DerectX и другие возможности системы с чем могут возникнуть проблемы.

Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
Видимо Вам нужна технология AppDomain
Пробовал пример с сайта professorweb.ru, там объясняется все в общих чертах, как и с сайта microsoft, в общем, приложение запускается, работает раза в 2-4 быстрее, однако, если в нем возникает ошибка или его закрыть любым (обычным) способом, то второй раз запустить без перезагрузки "стартера" не выходит, он ругается "элемент с тем же ключом уже был добавлен".
0
906 / 791 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
29.03.2019, 12:50 7
Цитата Сообщение от Zeropil Посмотреть сообщение
он ругается "элемент с тем же ключом уже был добавлен"
это скорее ошибка Вашей реализации
0
Эксперт .NET
8868 / 6178 / 1031
Регистрация: 21.01.2016
Сообщений: 23,353
29.03.2019, 12:57 8
Цитата Сообщение от Zeropil Посмотреть сообщение
Меня этот момент напрягает, предположим оба приложения будут в одной папке. Одно приложение запустит другое находясь в песочнице, другое наследует от него все разрешения? Сомневаюсь, что последнему приложению будут "по вкусу" такие манипуляции. Дело в том, что приложение использует DerectX и другие возможности системы с чем могут возникнуть проблемы.
Какие "такие" манипуляции и причём тут DirectX? И зачем вам вообще песочница понадобилась? Что и зачем собрались песочить?
0
16 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 100
29.03.2019, 14:06  [ТС] 9
Цитата Сообщение от Usaga Посмотреть сообщение
И зачем вам вообще песочница понадобилась? Что и зачем собрались песочить?
На этот вопрос я ответил выше, приложение работает намного лучше, кушает ЗНАЧИТЕЛЬНО меньше ресурсов, а алгоритмы выполняются в несколько раз быстрее, загрузка приложения так же на порядок быстрее.

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

Я хочу оптимизировать работу той программы, и изолировать от нее другие потенциально возможные и нежелательные элементы. Которые могут конфликтовать или мешать работе.

Добавлено через 3 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Какие "такие" манипуляции и причём тут DirectX?
Дело в том, что такой метод песочницы использует симуляцию железа, а мне ненужны конфликты с оборудованием. На моей машине может и будет работать, но если на другой системе или машине запустить то будут конфликты. Приложение создано сторонним автором и рассчитано (по-умолчанию) на несколько разных платформ.
0
Эксперт .NET
8868 / 6178 / 1031
Регистрация: 21.01.2016
Сообщений: 23,353
29.03.2019, 14:08 10
Zeropil, где работает в несколько раз быстрее? И что вы понимаете под песочницей? В виртуалке ничего работать не может не только быстрее, но даже с точно такой же скоростью, как вне виртуалки.

Мне кажется, что мы о каких-то разных вещах говорим.

Цитата Сообщение от Zeropil Посмотреть сообщение
Я хочу оптимизировать работу той программы
Это делается исключительно в коде самой программы.

Цитата Сообщение от Zeropil Посмотреть сообщение
и изолировать от нее другие потенциально возможные и нежелательные элементы. Которые могут конфликтовать или мешать работе.
А вот это уже фигня какая-то)

Добавлено через 47 секунд
Цитата Сообщение от Zeropil Посмотреть сообщение
Дело в том, что такой метод песочницы использует симуляцию железа, а мне ненужны конфликты с оборудованием. На моей машине может и будет работать, но если на другой системе или машине запустить то будут конфликты.
О чём речь? Какого рода конфликты?
0
16 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 100
29.03.2019, 14:45  [ТС] 11
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
это скорее ошибка Вашей реализации
Возможно дело в высвобождении ресурсов, проблема в том, что у меня нет "рабочего" примера, чтобы убедиться "чего не хватает и что лишнее".

Добавлено через 36 минут
Цитата Сообщение от Usaga Посмотреть сообщение
О чём речь? Какого рода конфликты?
Попахивает тролингом. Я пишу выше подробно чего хочу, но получаю вопросы на те же ответы. Почему те, кто не понимают темы не пишут в ней? Не можешь помочь - не трать время ни мое ни свое, ни место в теме. Бессмысленные диалоги ни к чему не приведут.
0
1040 / 872 / 228
Регистрация: 15.06.2012
Сообщений: 3,466
Записей в блоге: 1
29.03.2019, 15:20 12
Цитата Сообщение от Zeropil Посмотреть сообщение
Я хочу оптимизировать работу той программы, и изолировать от нее другие потенциально возможные и нежелательные элементы. Которые могут конфликтовать или мешать работе.
Если услоно два приложения ломятся на один порт, либо одновремено лочат один и тот же файл, то это проблема исключительно реализации, и песочница -- так себе решение. По хорошему нужно изолировать работу приложения в коде, а не средствами ОС. Более того, AppDomain не решает этой проблемы, т.к. обратится к одному файлу одновременно можно и из разных доменов.

Цитата Сообщение от Zeropil Посмотреть сообщение
На моей машине может и будет работать, но если на другой системе или машине запустить то будут конфликты.
И вы вместо того чтобы править баги, решили просто эмулировать свою машину у пользователя? Хотя стоп, речь же за песочницу...

Цитата Сообщение от Zeropil Посмотреть сообщение
приложение работает намного лучше, кушает ЗНАЧИТЕЛЬНО меньше ресурсов, а алгоритмы выполняются в несколько раз быстрее
AppDomain вроде как работает ровно также, как и просто запуск приложения. Не быстре уж точно.

Какое оборудование опрашивается через DirectX, и почему его нужно опрашивать с разных доменов?

Не по теме:

Цитата Сообщение от Zeropil Посмотреть сообщение
Попахивает тролингом.
Спим и видим, как бы кого потролить...

0
311 / 224 / 78
Регистрация: 17.08.2014
Сообщений: 910
29.03.2019, 15:23 13
Zeropil, А что вы имеете ввиду под песочницей. приложение нельзя запустить в приложении, приложение это самостоятельная программа которая запускается на платформе. Для того чтобы сделать песочницу вам как минимум придется повторить труд людей которые написали либо виртуальные машины(эмуляция железа) либо новую Платформу(ос) для запуска своего приложения. Либо это совсем не песочница, а просто файл который стартует приложение с ограниченными правами на запись в директории.
1
16 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 100
29.03.2019, 21:21  [ТС] 14
Цитата Сообщение от Wolfdp Посмотреть сообщение
Если услоно два приложения ломятся на один порт, либо одновремено лочат один и тот же файл, то это проблема исключительно реализации, и песочница -- так себе решение.
Как раз эти проблемы уже решены в той программе, автор разрешил приложению лочить файлы в рабочей директории.

Цитата Сообщение от Wolfdp Посмотреть сообщение
И вы вместо того чтобы править баги
Приложение уже написано и скомпилировано "кем-то", исходных кодов быть не может, т.к. оно распространяется как есть или платишь деньги за исходный код, у меня 200 тысяч в кармане не валяются, может у вас имеются, ради бога купите исходник.

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

Цитата Сообщение от Wolfdp Посмотреть сообщение
Какое оборудование опрашивается через DirectX, и почему его нужно опрашивать с разных доменов?
Простым примером может быть игра, или эмулятор, и, давать приложению, которое будет обновлять это приложение, много лишних прав, думаю, не стоит. К тому же, как показала практика шансы, что в исходный код закрадется вирус велики, не у всех ПК "вылизан до бела" и имеет нормальный и рабочий антивирус (приложение будет в свободном доступе где все ляжет на плечи неумелого пользователя). А значит Если я ограничу права главному приложению, которое будет защищено как подобает, значит и все приложения, которые "запускаются" от него, если будут заражены или изменены, попусту не получат "привилегий", каковых в принципе не должно быть.
Так же, исключается использование всякого рода инжекторов, поскольку они не войдут в сборку.
По поводу дополнительных средств защиты таких как наследование так же все предусмотрено, при установке приложения получат нужные права. И будут вынуждены работать лишь в конкретном домене.

Добавлено через 9 минут
Цитата Сообщение от Andreyip Посмотреть сообщение
Либо это совсем не песочница, а просто файл который стартует приложение с ограниченными правами на запись в директории.
Все просто, будет взято лучшее из всего имеющегося. У приложения так же имеются прозрачный и критические коды, и на выполнение которых нужны будут привилегии. К тому же, при работе с памятью есть множество нюансов, и один из них "блокировка памяти от сторонних приложений". И домены с этой задаче справляются на ура. Так же есть защиты на уровне процессора, но использовать их было бы глупо в данном примере.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2019, 21:21

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Посоветуйте песочницу
Не редко мне выпадает типичный установщик, где есть всё что угодно кроме нужного тебе ПО,...

Посоветуйте песочницу
Доброго всем времени суток! Нужна песочница, система Win7 Home x64

Попадает ли зона .tv в песочницу?
Собственно хочу купить, вот и интересно. Жду ответов. Спасибо.

Про песочницу гугла
Создал я тут англоязычный сайтик, в зоне NET, проспамил по каталогам, повесил нескоько ссылок... ...

Adobe посадит Reader в песочницу
Adobe планирует усилить безопасность в будущей версии своего популярного вьюэра PDF-файлов Adobe...

Старый сайт попал в песочницу
Привет Имею сайт, домен с октября 2006 года. С гугела шли неплохие переходы по некоторым запросам....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.