HeavenForsaker
Messages postés223Date d'inscriptionmercredi 13 juillet 2005StatutMembreDernière intervention 8 août 2011
-
14 août 2006 à 17:45
HeavenForsaker
Messages postés223Date d'inscriptionmercredi 13 juillet 2005StatutMembreDernière intervention 8 août 2011
-
2 sept. 2006 à 11:20
Bonjour,
J'utilise la fonction CreateFileMapping pour partager des variables entre différentes applications, pour accéder aux variables de la mémoire partagée j'utilise la fonction suivante:
OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, "nom de la mémoire");
L'accès à la mémoire partagée se faisant à l'aide de son nom, je voulais savoir si c'est possible d'y accéder sans en connaitre le nom, en d'autre terme est ce que mes variables sont protégées dans cette mémoire si j'utilise un nom complexe ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201013 1 sept. 2006 à 21:28
Non, je ne sais pas. A mon avis c'est pas super comme sécurité. Je choisirais plutot d'écrire des données cryptées.
Si tu veux avoir plus de chances qu'on te réponde, poste un nouveau message
guillaume_00
Messages postés18Date d'inscriptiondimanche 19 septembre 2004StatutMembreDernière intervention19 mars 2009 2 sept. 2006 à 02:57
Bonjour,
La zone de mémoire partagée obtenu via CreateFileMapping/OpenFileMapping n'est pas cryptée. Le nom passé à OpenFileMapping (en 3ième paramètre) est le nom de la zone de mémoire portant le même nom créée par CreateFileMapping. La complexité du nom ne change rien au contenu des données présentent dans la zone de mémoire. De même tu ne peut pas accéder à cette zone de données sans son nom car c'est grâce à lui que Windows peu retrouver la bonne zone de mémoire (enfin il serai possible d'utiliser une zone de mémoire non-nommée et de passer le handle retourné par CreateFileMapping aux applications intéressées [plus compliqué et je n'ai pas testé]). Sinon, comme à dit vecchio56 tu peux toi même crypter le contenu de la zone de mémoire partagée rendant ainsi "illisible" le contenue de la zone aux autres applications. Après ca dépends de la sensibilité de tes données mais normalement aucune autre application de connaissant le nom de ta zone de données, personne ne viendra les lire ou les modifier.
HeavenForsaker
Messages postés223Date d'inscriptionmercredi 13 juillet 2005StatutMembreDernière intervention 8 août 2011 2 sept. 2006 à 11:20
Ok merci bien vecchio56 et guillaume_00, en effet c'est une bonne idée de crypter les données dans la mémoire.
"La complexité du nom ne change rien au contenu des données présentent dans la zone de mémoire."
En fait quand je parlais de mettre un nom complex de mémoire partagée, je pensais au cas ou quelqu'un tenterai d'accèder au contenu par brut force en faisant un :
OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, "nom de la mémoire");
En testant tous les ""nom de la mémoire" jusqu'à ce que la fonction renvoi un handle vers la mémoire.
En mettant une clé de 128 bits en guise de nom ça devrait suffire pour les protéger.