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

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

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

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

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

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


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


Ответы (2)


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

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

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

person Luke    schedule 29.01.2010

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

person MastAvalons    schedule 23.12.2011