Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Создайте виртуальный файл и запустите его

Автор вопроса: Michal BoskaОтветов: 2

Мой поиск в Google привел меня сюда: Как создать виртуальный файл? В той статье люди предлагали автору распаковать файл во временную директорию и работать с ним оттуда.

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

Концепция того, что я хотел бы сделать:

В нашей компании мы разработали программу, но это не стандартное EXE-приложение, оно имеет внутренний формат (допустим, расширение формата "приложения" - .MDL) и выполняется средой выполнения, поэтому среда выполнения должна быть установлена ​​на клиентская машина. Эта концепция похожа на Java (хотя это не java, просто сравнение, чтобы вы могли лучше понять). Теперь я хочу зашифровать этот файл .MDL и включить его в качестве ресурса в обычный файл .exe. Этот файл .exe будет проверять, можно ли его запускать (проверить условия лицензии, ключи, авторизацию и т. д.), а затем, в случае аутентификации, расшифровать и извлечь файл .MDL, запустить среду выполнения и передать виртуальный путь к .MDL. файл в качестве аргумента для среды выполнения. По понятным причинам я не хочу записывать расшифрованный файл .mdl куда-то на диск, потому что кто-то может просто запустить приложение, дождаться, пока расшифровщик запишет .MDL во временный файл, скопировать его из временного файла и распространить.

Итак, есть идеи, как это сделать? PS: Меня вдохновили игры EA Games... когда вы запускаете их и заглядываете в свою таблицу процессов, вы видите обычный исполняемый файл игры, и через определенное время он порождает новый процесс с именем вроде ~A003. температура

  • Вы понимаете, что это не остановит никого, кто действительно хочет сломать вашу программу, верно? Anon. 28.01.2010
  • да .. решение состоит в том, чтобы записать его в память, но это на самом деле не мешает суперпользователю найти расшифрованные данные и сохранить их где-нибудь. mlathe 29.01.2010

extractwinapivirtual-file

Ответы

Ответ 1 · рейтинг 1 · Luke

Я не знаю ни одного способа связать виртуальный файл с путем без использования какого-либо компонента драйвера; это тяжелая работа.

Почему у вас нет среды выполнения для расшифровки? Тогда вам не придется беспокоиться о расшифровке файла на диске. Или вы можете создать безымянный наследуемый объект раздела, в который нужно расшифровать элемент и передать значение дескриптора среде выполнения в качестве параметра командной строки.

Что бы вы ни делали, люди все равно смогут обойти это, так что мне это кажется пустой тратой времени. Каждая игра, когда-либо созданная EA, была взломана; люди либо подумают, что ваш продукт полезен и стоит денег, либо нет. Я не думаю, что стоит тратить время или усилия на реализацию схем более сложных, чем очень простая проверка регистрационного ключа (просто чтобы это выглядело так, как будто вы что-то сделали).

Ответ 2 · рейтинг 4 · MastAvalons

Вы должны использовать упаковщик boxedapp. Это должно помочь.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы