Ma recherche google m'a conduit ici: How to create a virtual file? Dans cet article, les gens ont suggéré à l'auteur d'extraire le fichier dans un répertoire temporaire et de travailler avec lui à partir de là. En fait, ce que je voudrais faire, c'est quelque chose de similaire à ce que l'auteur demandait à l'origine - créer un fichier "virtuel" et lui assigner un "chemin", tel qu'il serait compréhensible par d'autres applications appelant des fenêtres standards API de système de fichiers. Le but de ceci est d'empêcher la copie et l'utilisation non autorisée.Créer un fichier "virtuel" et l'exécuter
Un concept de ce que je voudrais faire:
Dans notre entreprise, nous avons mis au point un programme - mais ce n'est pas une application EXE standard, il a un format interne (supposons que l'extension est le format « application » est .MDL) et est exécuté par l'environnement d'exécution, de sorte que le moteur d'exécution doit être installé sur l'ordinateur client. Ce concept est similaire à Java (bien que ce ne soit pas Java, il suffit de comparer, pour que vous puissiez mieux comprendre). Ce que je veux faire maintenant, est de crypter ce fichier .MDL et l'inclure comme une ressource dans un fichier .exe régulier. Ce fichier .exe vérifie s'il est bon de s'exécuter (vérifiez les conditions de licence, les clés, l'autorisation etc ...) puis, s'il est authentifié, décrypte et extrait le fichier .MDL, exécute le runtime et transmet le chemin virtuel du .MDL fichier en tant qu'argument à l'exécution. Pour des raisons évidentes, je ne veux pas écrire le fichier .mdl décrypté quelque part sur le disque, car quelqu'un pourrait simplement démarrer l'application, attendre que le décrypteur écrive .MDL sur temp, le copier depuis le temp et le distribuer.
Alors, une idée de comment faire cela? PS: Je me suis inspiré des jeux EA Games ... lorsque vous les exécutez et regardez dans votre table de processus, vous voyez un exe de jeu régulier, et, après un certain temps, il engendre un nouveau processus avec un nom comme ~ A003 .tmp
Vous vous rendez compte que cela n'empêchera personne qui veut vraiment casser votre programme, n'est-ce pas? –
oui .. la solution est de l'écrire en "mémoire", mais cela n'empêche pas vraiment un super-utilisateur de trouver les données décryptées et de les sauvegarder quelque part. – mlathe