Создайте "виртуальный" файл и выполните его
Мой поиск в Google привел меня сюда: Как создать виртуальный файл? В этой статье люди предложили автору извлечь файл во временный каталог и поработать с ним оттуда.
На самом деле то, что я хотел бы сделать, - это нечто похожее на то, о чем изначально просил автор - создать "виртуальный" файл и назначить ему "путь", такой, который был бы понятен для других приложений, вызывающих стандартный файловый API-интерфейс Windows. Целью этого является предотвращение копирования и несанкционированного использования.
Понятие о том, что я хотел бы сделать:
В нашей компании мы разработали программу, но это не стандартное приложение EXE, оно имеет внутренний формат (предположим, что расширение формата "application" -.MDL) и выполняется средой выполнения, поэтому среда выполнения должна быть установлена на клиентская машина. Эта концепция похожа на Java (хотя это не Java; просто сравнение, чтобы вы могли лучше понять). Теперь я хочу зашифровать этот файл.MDL и включить его в качестве ресурса в обычный файл.exe. Этот файл.exe будет проверять, подходит ли он для запуска (проверьте условия лицензии, ключи, авторизацию и т. Д.), А затем, если он прошел проверку подлинности, расшифровывает и извлекает файл.MDL, исполняет среду выполнения и передает виртуальный путь.MDL файл в качестве аргумента времени выполнения. По понятным причинам я не хочу записывать расшифрованный файл.mdl где-нибудь на диск, потому что кто-то может просто запустить приложение, подождать, пока расшифровщик не напишет.MDL в temp, скопировать его из temp и распространить.
Итак, есть идеи, как это сделать? PS: меня вдохновили игры EA Games... когда вы запускаете их и просматриваете таблицу процессов, вы видите исполняемый файл обычной игры, и через некоторое время он порождает новый процесс с именем, например ~A003. TMP
2 ответа
Я не знаю ни одного метода, чтобы иметь виртуальный файл, связанный с путем, без использования какого-либо компонента драйвера; это тяжелая работа.
Почему у вас нет времени выполнения расшифровки? Тогда вам не нужно беспокоиться о расшифровке файла на диске. Или вы можете создать безымянный объект наследуемого раздела, чтобы расшифровать элемент и передать значение дескриптора среде выполнения в качестве параметра командной строки.
Что бы вы ни делали, люди все равно смогут обойти это, поэтому для меня это кажется пустой тратой времени. Каждая игра EA когда-либо сделанная была взломана; люди будут либо думать, что ваш продукт полезен и стоит денег, либо не будут. Я не думаю, что стоит потратить время или усилия на реализацию схем, более сложных, чем простая проверка регистрационного ключа (просто чтобы выглядело, как будто вы что-то сделали).
Вы должны использовать упаковщик boxedapp. Это должно помочь.