Создайте «виртуальный» файл и выполните его - PullRequest
3 голосов
/ 28 января 2010

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

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

Понятие о том, что я хотел бы сделать:

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

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

Ответы [ 2 ]

4 голосов
/ 23 декабря 2011

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

1 голос
/ 29 января 2010

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

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

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

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