Выполнение приложения в архивном файле без извлечения - PullRequest
5 голосов
/ 16 июля 2010

Я хочу сжать и зашифровать все мое приложение, возможно, с помощью Zip, 7z, Bz2, Tar или любым другим методом сжатия, и использовать AES-128/256 в качестве алгоритма шифрования в целях безопасности. Затем создайте приложение запуска, которое будет обрабатывать выполнение приложения и расшифровку архива.

У меня уже есть идея, как этого добиться, но только со ссылками / библиотеками:

  • Приложение будет обрабатывать дешифрование файла с помощью #ZipLib, пароль может храниться внутри SecureString

  • Создайте новый домен приложений и запустите исполняемый файл из архива. не извлекая его (просто загрузка байт-коды)

  • Вторичный AppDomain должен реализовывать событие AssemblyResolve и всякий раз, когда ему нужно загрузить монтаж; он попытается расшифровать это файл из архива.

Но как насчет файлов, необходимых приложению, таких как изображения, встроенная база данных (например, SQLite), XML и другие внешние файлы? Есть ли другой способ сделать это?

1 Ответ

3 голосов
/ 07 сентября 2010

Файлы могут быть загружены во время выполнения и не требуют загрузки во время разработки. Вы можете вызвать менеджера ресурсов и получить изображения из ваших зашифрованных областей. Это может быть достигнуто. Однако это потребует некоторого времени. Мне кажется, что то, что ты делаешь, хорошо в концепции, но немного не оправдывает. Единственный способ запустить программу - извлечь ее тем или иным способом. Если ваша цель - защитить вашу информацию, ваш модуль запуска предоставит ваши данные. Использование .NET само по себе является разоблачением того, что вы делаете (.NET Reflector и т. Д.). Если ваша цель состоит в том, чтобы сделать это трудным, то запуска будет достаточно.

Просто помните, что все может быть сломано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...